🧹 Docker Cleanup: Практичний гайд по очищенню
Docker має звичку засмічувати диск залишковими контейнерами, образами та volumes. Ось практичні команди для ефективного очищення.
🚀 Швидке очищення (безпечне)
|
1 2 3 4 5 6 7 8 9 |
# Видалити зупинені контейнери docker container prune -f # Видалити невикористовувані образи docker image prune -f # Видалити невикористовувані мережі docker network prune -f |
🔍 Діагностика перед очищенням
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Подивитися що займає місце docker system df # Список всіх контейнерів docker ps -a # Список всіх образів docker images # Список volumes docker volume ls |
🎯 Вибіркове очищення
Контейнери
|
1 2 3 4 5 6 7 8 9 |
# Зупинити всі контейнери docker stop $(docker ps -q) # Видалити конкретний контейнер docker rm container_name # Видалити всі зупинені docker container prune -f |
Образи
|
1 2 3 4 5 6 7 8 9 |
# Видалити конкретний образ docker rmi image_name # Видалити образи без тегів (dangling) docker image prune -f # Видалити всі невикористовувані образи docker image prune -a -f |
Volumes
|
1 2 3 4 5 6 |
# Видалити конкретний volume docker volume rm volume_name # Видалити всі невикористовувані volumes docker volume prune -f |
⚡ Потужне очищення
|
1 2 3 4 5 6 |
# Видалити все невикористовуване (БЕЗ volumes) docker system prune -a -f # Видалити ВСЕ включно з volumes docker system prune -a -f --volumes |
🚨 Ядерна опція (УВАГА!)
|
1 2 3 4 5 6 |
# ВИДАЛЯЄ ВСЕ ПОВНІСТЮ docker stop $(docker ps -aq) 2>/dev/null || true docker rm $(docker ps -aq) 2>/dev/null || true docker rmi $(docker images -q) 2>/dev/null || true docker volume rm $(docker volume ls -q) 2>/dev/null || true |
📅 Регулярне обслуговування
Щотижня
|
1 2 3 4 5 |
# Безпечне очищення docker container prune -f docker image prune -f docker network prune -f |
Щомісяця
|
1 2 3 4 5 6 |
# Видалити старі образи docker image prune -a -f # Перевірити розмір docker system df |
Коли диск повний
|
1 2 3 |
# Повне очищення docker system prune -a -f --volumes |
🛡️ Що НЕ очищувати
❌ Named volumes з важливими даними (postgres_data, mongodb_data)
❌ Запущені контейнери (без зупинки)
❌ Образи що активно використовуються
✅ Що безпечно очищувати
✅ Зупинені контейнери
✅ Dangling образи (без тегів)
✅ Невикористовувані мережі
✅ Anonymous volumes
🔧 Корисні alias’и
Додайте в .bashrc або .zshrc:
|
1 2 3 4 5 6 7 |
# Docker aliases alias dclean='docker system prune -f' alias dcleanall='docker system prune -a -f' alias dnuke='docker stop $(docker ps -q) 2>/dev/null; docker system prune -a -f --volumes' alias dsize='docker system df' alias dls='docker ps -a' |
📊 Моніторинг розміру
|
1 2 3 4 5 6 7 8 9 |
# Поточний розмір Docker docker system df # Детальна інформація docker system df -v # Размір конкретного контейнера docker inspect container_name | grep -i size |
💡 Поради експертів
- Регулярність – краще часто і по трошки ніж рідко і багато
- Моніторинг – стежте за
docker system df - Обережність – завжди перевіряйте що видаляєте
- Backup – важливі volumes бекапіть перед очищенням
- Автоматизація – налаштуйте cron job для регулярного очищення
⏰ Автоматизація через cron
|
1 2 3 |
# Очищення щонеділі о 2:00 0 2 * * 0 docker system prune -f > /var/log/docker-cleanup.log 2>&1 |
🎯 Висновок
Docker cleanup – це як прибирання квартири. Робіть регулярно, не накопичуйте сміття, але будьте обережні з важливими речами. Золота середина: docker system prune -f раз на тиждень і повна перевірка раз на місяць.
Пам’ятайте: краще втратити 5 хвилин на cleanup ніж 5 годин на відновлення системи! 🚀