Bash Ready | Linux
🐳 Очистка Docker — как вернуть гигабайты дискового пространства
Docker — потрясающий инструмент, но у него есть вредная привычка: он незаметно пожирает место на жестком диске. Вы обновили код, пересобрали образ, запустили новый контейнер — а старые слои, неиспользуемые тома и остановленные контейнеры остались лежать мертвым грузом. Со временем эта «свалка» может забить диск сервера на 100%, что приведет к падению всех приложений.
Когда вы пересобираете образ, старые слои теряют связь с тегами и превращаются в так называемые dangling (зависшие) образы. В выводе команды docker images они отображаются со странными именами <none>:<none>. Сами по себе они уже никогда не очистятся.
Главная команда для генеральной уборки:
docker system prune
Эта команда в один клик удаляет:
— Все остановленные контейнеры.
— Все неиспользуемые сети (networks).
— Все «зависшие» (<none>:<none>) образы и кэш сборки.
Если вы хотите пойти дальше и снести вообще все неиспользуемые образы (даже те, у которых есть нормальные теги, но которые сейчас просто не запущены), добавьте флаг -a:
docker system prune -a
Зачем это инженеру? Для предотвращения критических сбоев. Но здесь кроется важный нюанс: по умолчанию docker system prune не трогает тома (Volumes). И это сделано ради вашей безопасности, ведь в томах хранятся боевые данные — например, файлы вашей базы данных PostgreSQL или Redis.
Если вы уверены, что на локальной машине или тестовом сервере вам больше не нужны старые объемы данных, их нужно удалять принудительно, добавив специальный флаг:
docker system prune --volumes
Или точечно через команду docker volume prune.
Чтобы держать сервер в тонусе и не доводить диск до критической отметки, опытные админы не чистят всё руками. Они один раз настраивают уже знакомый нам планировщик Cron, добавляя туда задачу выполнять автоматическую базовую очистку docker system prune -f (флаг -f убирает подтверждение y/n) раз в неделю.
Регулярный мониторинг свободного места с помощью команды df -h и своевременный запуск очистки Docker — это простое правило гигиены, которое убережет ваши серверы от внезапных остановок и сэкономит кучу нервов.
🚪 Bash Ready | #практика
16 · 799 ·