Чистка Docker: убираем мусор из образов, контейнеров и томов
Docker — мощный инструмент для управления контейнерами, но со временем неиспользуемые образы, контейнеры и тома накапливаются и съедают место на диске. Разбираю команды, которые держат Docker-окружение лёгким и чистым.
Удалить всё неиспользуемое разом
Чтобы очистить всё неиспользуемое — образы, контейнеры, сети и тома — одной командой:
docker system prune
Более агрессивный вариант — удалить все остановленные контейнеры и неиспользуемые образы (включая те, что привязаны к контейнерам):
docker system prune -a
Внимание: команда удаляет данные безвозвратно. Перед запуском убедись, что эти ресурсы точно не нужны.
Чистка образов
Посмотреть все образы:
docker images -a
Удалить конкретные образы по ID:
docker rmi image_id image_id
Висячие образы — неиспользуемые и без тега:
docker images -f dangling=true
Удалить их:
docker image prune
Чистка томов (volumes)
Посмотреть список томов:
docker volume ls
Удалить конкретные тома по имени:
docker volume rm volume_name volume_name
Висячие (неприкреплённые) тома:
docker volume ls -f dangling=true
Удалить их:
docker volume prune
Чистка контейнеров
Список всех контейнеров, включая остановленные:
docker ps -a
Удалить по ID или имени:
docker rm container_id container_id
Удалить контейнер вместе с его томами:
docker rm -v container_id
Автоматизация через cron
В нагруженных окружениях разумно автоматизировать очистку — так диск всегда остаётся свободным.
Открой crontab:
crontab -e
Добавь строку для ежедневного запуска в 3:00 ночи:
0 3 * * * docker system prune -af --volumes > /dev/null 2>&1
Эта команда:
- Удалит все неиспользуемые контейнеры, образы и тома.
- Отработает тихо, без логов.
Регулярная чистка Docker экономит место на диске, ускоряет систему и поддерживает порядок в окружении. Запускай команды вручную по необходимости — или настрой cron-задачу и забудь о ручной уборке.
Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.