Как очистить и удалить образы Docker
Образы Docker могут быть очень большими, и если вы часто работаете с контейнерами, они могут занимать много места в вашем хранилище. Мы обсудим, как очистить загруженные изображения и удалить старые файлы, которые вам не нужны.
Образы Docker и контейнеры Docker
Образы Docker обрабатывают свои данные иначе, чем контейнеры. Образы — это файлы только для чтения, созданные из Dockerfiles и отправленные в Docker Hub. Каждый раз, когда вы загружаете новую версию, Docker должен загружать файлы для этой новой версии. Старые версии по-прежнему хранятся на вашем локальном диске.
Контейнеры создаются из образов и обычно имеют собственную файловую систему и прикрепленные к ним тома. Когда вы останавливаете контейнер, все данные, не хранящиеся на томе, будут удалены. Таким образом, чтобы очистить данные, используемые контейнерами, вам просто нужно остановить их и удалить их тома.
Для очистки изображений Docker предоставляет несколько команд для запуска сборки мусора.
Обрезка изображений
Вы неизбежно столкнетесь с образами, которые не используются, будь то старые версии образов или образы из контейнеров, которые активно не работают. В любом случае удаление образа обычно не представляет проблемы — если оно понадобится вам снова, Docker может просто получить его из удаленного репозитория.
Чтобы просмотреть все изображения, хранящиеся в вашей системе, вы можете использовать следующую команду:
docker image ls
Несмотря на то, что все эти версии занимают кучу места в этом выводе, разные версии сохраняются постепенно, поэтому на диске фактически сохраняются только изменения из новой версии.
Вы можете удалить изображение вручную, учитывая его идентификатор изображения:
docker image rm 3a8d8f76e7f8f
Однако гораздо более безопасным методом является использование встроенной команды prune
, которая просматривает все изображения, чтобы найти и удалить те, на которые нет активных ссылок:
docker image prune -a
Если не использовать тег -a
, изображения с тегами останутся, но не используются. С флажком останутся только изображения, которые вы активно используете.
Команда prune
сообщит вам, сколько места было освобождено, но если вы хотите вручную проверить, сколько места использует Docker до и после, вы можете использовать du -sh
на каталог хранилища Docker:
sudo du -sh /var/lib/docker/
Этот каталог будет находиться в C:ProgramDataDockerDesktop
в Windows и ~/Library/Containers/com.docker.docker/Data/vms/0/
в macOS.