Очистка 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 ночи, удаляя все неиспользуемые ресурсы, включая образы, контейнеры и тома.