Если вы работаете с Docker, то наверняка сталкивались с ситуацией, когда со временем накопление неиспользуемых контейнеров и образов начинает занимать всё больше места на диске.
Сейчас расскажем как настроить автоматическое удаление ненужных контейнеров.
Основы очистки Docker
Прежде чем погрузиться в автоматизацию, давайте немного разберемся с основными командами, которые помогут вам освободить место вручную.
• Удаление неиспользуемых контейнеров:
docker container prune
• Удаление старых образов:
docker image prune
Если вы хотите удалить все образы, которые не привязаны к контейнерам, добавьте флаг -a:
docker image prune -a
Удаление неиспользуемых volumes:
docker volume prune
Удаление всех неиспользуемых объектов:
docker system prune
Для более жесткой очистки, включая остановленные контейнеры и неиспользуемые образы:
docker system prune -a
Автоматизация с помощью cron
Теперь, когда вы знаете, как очистить Docker вручную, давайте настроим автоматическую очистку.
Для этого мы будем использовать cron — это инструмент, который позволяет запускать команды по расписанию.
1. Откройте crontab для редактирования:
crontab -e
2. Добавьте задачу, которая будет регулярно выполнять команду очистки. Например, чтобы запускать очистку каждый день в 3:00 ночи, добавьте следующую строку:
0 3 * * * /usr/bin/docker system prune -af > /dev/null 2>&1
3. Сохраните изменения и выйдите из редактора.
Теперь cron будет автоматически запускать очистку Docker каждый день в 3:00.
Чтобы убедиться, что ваша задача cron выполняется правильно, вы можете проверять её выполнение через системные логи.
Для этого используйте команду:
tail -f /var/log/syslog | grep CRON
🐸Библиотека devops'a #буст
