Docker — один из самых популярных продуктов в организациях на сегодняшний день. Он значительно упрощает процесс управления приложениями в контейнерах. Docker обеспечивает переносимость, производительность, гибкость, масштабируемость и изоляцию приложений, поскольку использует контейнеры. Контейнеры более переносимы и требуют меньше ресурсов, чем виртуальные машины. Работая с Docker, вы, как правило, накапливаете избыточное количество неиспользуемых образов, томов и контейнеров. Эти ресурсы загромождают вывод и потребляют много дискового пространства. В этом руководстве вы узнаете, как очистить ресурсы Docker и навести порядок на своем сервере.
Полная очистка
Вы можете очистить все ресурсы Docker, включая образы, остановленные контейнеры, тома и сети, с помощью одной команды. Вы можете выбрать один из вариантов ниже:
Справка: «Висячие» (dangling) ресурсы — это те, которые не связаны ни с одним запущенным контейнером.
Вариант 1:
|
1 |
docker system prune |
– все остановленные контейнеры
– все сети, не используемые хотя бы одним контейнером
– все «висячие» образы
– весь «висячий» кэш сборки
Вариант 2:
|
1 |
docker system prune -a |
– все остановленные контейнеры
– все сети, не используемые хотя бы одним контейнером
– все образы, с которыми не связан ни один контейнер
– весь кэш сборки
Вариант 3:
|
1 |
docker system prune -a --volumes |
– все остановленные контейнеры
– все сети, не используемые хотя бы одним контейнером
– все тома, не используемые хотя бы одним контейнером
– все образы, с которыми не связан ни один контейнер
– весь кэш сборки

Удаление образов Docker
Чтобы удалить определенный образ, вам необходимо знать его ID. Вы можете найти ID образа контейнера Docker с помощью команды “docker images”, как описано в нашем руководстве по установке & работе с Docker на Ubuntu.
Список образов:
|
1 |
docker images |
Удалить образ:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker rmi <ID образа> Пример: docker rmi 1d622ef86b13 Вывод: Untagged: ubuntu:latest Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7 Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01 Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3 Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47 Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387 Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f |
Удаление «висячих» образов:
При сборке образа Docker он обычно состоит из нескольких слоев. «Висячие» (dangling) образы — это слои, которые не связаны ни с одним тегированным образом. Они занимают дисковое пространство, но не приносят никакой пользы. Их список можно вывести с помощью команды:
|
1 |
docker images -f dangling=true |
Вы можете удалить эти образы, выполнив следующую команду:
|
1 |
docker image prune |
Удаление образов по шаблону
Вы можете легко найти образы по определенному шаблону с помощью команды “grep”, а затем удалить их, передав результат в команду “docker rmi” с помощью “awk”. Вы можете использовать следующие команды, заменив “pattern” в каждой из них:
Список:
|
1 |
docker images -a | grep "pattern" |
Удаление:
|
1 |
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi |
Удалить все образы
Вы можете вывести список всех образов docker с помощью команды:
|
1 |
docker images -a |
Как только вы решите удалить их все, вы можете использовать эту команду, чтобы удалить их все:
|
1 |
docker images -a -q | xargs docker rmi |
Удаление контейнеров:
Теперь, когда вы очистили все ненужные образы, пришло время удалить некоторые контейнеры, которые больше не требуются.
Чтобы вывести список контейнеров, вы можете использовать команду:
|
1 |
docker ps -a |
Чтобы удалить контейнеры, используйте команду:
|
1 |
docker rm <<Имя контейнера/ID контейнера>> |
Временный запуск контейнеров
Если вы хотите запустить контейнер только один раз, вы можете настроить его автоматическое удаление после выхода. Вы можете сделать это с помощью команды:
|
1 |
docker run --rm <<ИмяОбраза>> |
Удаление завершенных контейнеров
Вы можете отфильтровать завершенные контейнеры с помощью аргумента “-f”. Выведите список завершенных контейнеров с помощью команды:
|
1 |
docker ps -a -f status=exited |
Теперь, когда вы их отфильтровали, удалите их с помощью этой команды:
|
1 |
docker rm $(docker ps -a -f status=exited -q) |
Удаление контейнеров по шаблону
Вы можете легко найти контейнеры по определенному шаблону с помощью команды “grep”, а затем удалить их, передав в команду “docker rm” с помощью “awk”. Вы можете использовать следующие команды, заменив “pattern” в каждой из них.
Список:
|
1 |
docker ps -a | grep "pattern" |
Удалить:
|
1 |
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm |
Остановка и удаление всех контейнеров
Перед этим просмотрите все контейнеры на вашем сервере, выведя их список. Только после того, как вы будете уверены, что хотите их удалить, выполните следующие команды:
Выведите список контейнеров для проверки:
|
1 |
docker ps -a |
Остановить и удалить:
|
1 2 |
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) |
Удаление томов
Удаление определенного тома
Чтобы удалить определенный том, вам нужно знать его имя. Чтобы узнать его, вы можете вывести список томов.
Список:
|
1 |
docker volume ls |
Удалить:
|
1 |
docker volume rm <<ИмяТома>> |
Удаление осиротевших томов
При удалении контейнера связанный с ним том не удаляется автоматически. Такой том называется осиротевшим (dangling). Чтобы найти такие тома, используйте аргумент фильтра в команде:
|
1 |
docker volume ls -f dangling=true |
Чтобы удалить все такие осиротевшие тома, используйте команду:
|
1 |
docker volume prune |
Удаление контейнера и его безымянного тома
Если вы создали анонимный или безымянный том при запуске контейнера, вы можете удалить его вместе с контейнером с помощью одной команды. Однако, если том именованный, то будет удален только контейнер.
|
1 |
docker rm -v <<ИмяКонтейнера>> |
Теперь, когда у вас есть эта шпаргалка, вы готовы очистить ресурсы Docker, которые больше не требуются на вашем сервере.
Приятной работы!


Комментарии
Комментариев пока нет. Будьте первым.