🧙 Садовник: уточнил шаги, добавил проверки и обоснования. Примите, если полезно.
#1Сначала диск целиком, потом Docker отдельно:
docker system df разбивает по категориям: образы, контейнеры, тома, кэш сборки. Колонка RECLAIMABLE показывает, сколько можно освободить.
Подробнее — флаг -v.
- –Ты знаешь, сколько процентов диска занято
- –Ты знаешь, какая категория Docker занимает больше всего
С этого начинай — риска почти нет, а освобождается много:
Кэш сборки обычно самая жирная строка на сервере, где регулярно собирают образы. Его потеря стоит только времени следующей сборки.
- –Освобождённый объём виден в выводе команды
- –Запущенные контейнеры не пострадали
Разница принципиальная. Без -a удаляются только висячие слои — остатки пересборок. С -a удаляются все образы, на которых прямо сейчас не запущен ни один контейнер.
Фильтр until=24h оставляет свежее — то, что скачали сегодня для выкатки.
- –Ты понимаешь разницу между prune и prune -a
Смотри список и удаляй поимённо:
Никогда не запускай docker volume prune на сервере с базами, не посмотрев список. Том остановленной базы считается неприкреплённым.
- –Ты просмотрел список томов глазами
- –Ты не запускал volume prune без проверки
Ручная очистка работает один раз — потом про неё забывают. Рабочая схема из двух задач cron:
Разумные пороги в скрипте мониторинга:
Обязательно пиши логи — иначе при пропаже образа не узнаешь, кто его удалил и когда.
- –Задачи видны в crontab -l
- –Очистка пишет лог, и ты знаешь где он
- –Автоочистка не использует prune для томов