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