Если вам нужна всеобъемлющая контейнерная платформа с открытым исходным кодом для создания независимости между приложениями и инфраструктурой, Docker - ваш самый безопасный выбор. Если у вас была возможность использовать его, вы уже знаете, насколько он способен и прост в использовании.
Большое количество облачных и ИТ-компаний считают его чрезвычайно полезным, и его популярность, безусловно, заслуживает.
Тем не менее, это не делает его идеальным. Доказательством тому могут служить ограничения, связанные с удалением изображений, томов, контейнеров и сетей. Несмотря на то, что эти команды доступны, они не настолько исчерпывающи, как этого могут пожелать пользователи.
Здесь вы увидите основные проблемы, с которыми сталкиваются пользователи, а также пути их решения. Вы узнаете, как легко удалять изображения и контейнеры.
Проблема
Контейнерная технология обеспечивает способ визуализации операционных систем. Это позволяет приложению быть упакованным со всем, что требуется для его запуска, что позволяет ему действовать независимо от ОС.
Образы контейнеров - это автономные исполняемые пакеты приложений, которые включают в себя все, что необходимо для правильной работы приложения. Время выполнения, код, конфигурации, системные инструменты и библиотеки содержатся в каждом образе.
Когда вы используете Docker, эти изображения накапливаются. Со временем накапливается большое количество неиспользуемых изображений, томов данных и контейнеров, создавая переполненную среду Docker. Когда это происходит, необходимо обновить среду, чтобы платформа работала должным образом.
Есть несколько команд, которые могут сделать это, поэтому давайте посмотрим на основные способы устранения беспорядка в вашей среде Docker.
Удаление изображений Docker
Прежде чем вы сможете удалить ненужные изображения, вы должны отличить их от полезных. Это можно легко сделать, перечислив все изображения, которые содержит ваша система, с помощью команды управления изображениями.
Вот как это выглядит:
$ docker image #list the most recently created images
Или же
$ docker image -a #list all images
Со второй командой вы увидите все ваши изображения докера. Все, что вам нужно сделать, это найти так называемые «свисающие изображения». Это все изображения Docker, которые не содержат тегов. Без тега нет связи с помеченными изображениями, что означает, что они больше не нужны.
Вы можете удалить одно или несколько изображений, используя идентификатор изображения. Для этого используйте одну из следующих команд:
$ docker rmi d65c4d6a3580 #remove a single image
$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc #remove multiple images
Более удобным решением является использование флага -f фильтра для отображения всех висячих изображений.
Чтобы удалить эти образы и очистить дисковое пространство, используйте одну из следующих команд:
$ docker image prune #interactively remove dangling images
Или же
$ docker rmi $(docker images -q -f dangling=true)
Вы можете удалить все изображения Docker аналогичным образом. Перечислите их, используя команду $ docker images –a, затем удалите их, используя следующее:
$ (docker rmi $(docker images -a -q)
Другой вариант - удалить изображения, которые следуют определенному шаблону. Чтобы перечислить их, используйте следующую команду:
$ docker images -a | grep "pattern"
Затем удалите их, используя:
$ docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
Удаление контейнеров
После работы с Docker в течение определенного времени вы можете захотеть удалить один или несколько контейнеров.
Как и при удалении изображений, вам сначала нужно перечислить их с помощью следующей команды:
$ docker ps
Или же
$ docker ps -a
Когда вы найдете контейнеры, которые хотите удалить, используйте их ID для этого.
$ docker rm 0fd99ee0cb61 #remove a single container
$ docker rm 0fd99ee0cb61 0fd99ee0cb61 #remove multiple containers
Если контейнер, который вы пытаетесь удалить, запущен, вы можете использовать следующую команду, чтобы остановить его:
$ docker stop 0fd99ee0cb61
$ docker rm -f 0fd99ee0cb61
Наконец, вы можете остановить и удалить все ненужные контейнеры, используя следующие команды:
$ docker stop $(docker ps -a -q) #stop all containers
$ docker container prune #interactively remove all stopped containers
Или же
$ docker rm $(docker ps -qa)
Это позволит вам освободить ценное дисковое пространство и начать все сначала.
Последнее слово
Как видите, удаление образов и контейнеров Docker не так сложно, как может. Теперь, когда вы знаете эти команды, вы можете лучше контролировать работу с Docker.
Конечно, это только некоторые из команд, и вы можете использовать множество других комбинаций. Тем не менее, они сделают эту работу просто отлично, так что не стесняйтесь попробовать их.