- Удаление образов, контейнеров и томов Docker
- Как пользоваться руководством?
- Удаление образов Docker
- Удаление конкретного образа
- Удаление недействительных образов
- Удаление образов по шаблону
- Удаление всех образов
- Удаление контейнеров
- Удаление конкретного контейнера
- Удаление контейнера при остановке
- Удаление всех остановленных контейнеров
- Удаление контейнера с помощью нескольких фильтров
- Удаление контейнеров по шаблону
- Остановка и удаление контейнера
- Удаление томов
- Удаление конкретного тома (Docker 1.9 +)
- Удаление недействительных томов (Docker 1.9 +)
- Удаление тома вместе с контейнером
- Заключение
- Как удалить все контейнеры Docker, образы, тома и сети
- Удаляем все неиспользуемые объекты
- Удаление контейнеров Docker
- Удаляем один или несколько контейнеров
- Удалить все остановленные контейнеры
- Удаляем контейнер используя фильтр
- Остановить и удалить все контейнеры
- Как удалить образы Docker
- Удаляем висящие и неиспользуемые образы
- Удаляем образы используя фильтры
- Удаление Docker томов
- Удалить один или несколько томов
- Удалить неиспользуемые тома
- Удаление сети Docker
- Одна или несколько сетей
- Удалить неиспользуемую сеть
- Удалить сети с помощью фильтров
- Docker удалить все контейнеры windows
- Удаление образов Docker
- Удаление одного или нескольких конкретных образов
- Удаление подвешенных образов
- Удаление образов согласно конкретной схеме
- Удаление всех образов
- Удаление контейнеров
- Удаление одного или нескольких конкретных контейнеров
- Удаление контейнера при выходе
- Удаление всех закрытых контейнеров
- Удаление контейнеров при помощи более одного фильтра
- Удаление контейнеров согласно конкретной схеме
- Остановка и удаление всех контейнеров
- Удаление томов
- Удаление одного или нескольких конкретных томов — версия Docker 1.9 и старше
- Удаление подвешенных томов — Версия Docker 1.9 и старше
- Удаление контейнера и его тома
- Заключение
Удаление образов, контейнеров и томов Docker
Docker позволяет быстро упаковать приложение или сервис в контейнер, который можно запустить в любом окружении. Однако при работе с Docker быстро накапливаются ненужные образы, контейнеры и тома данных, которые засоряют вывод и потребляют дисковое пространство.
Docker не предоставляет прямых команд для чистки, однако он предлагает набор инструментов для чистки системы с помощью командной строки. Это руководство представляет собой шпаргалку по командам Docker для чистки дискового пространства и системы путём удаления ненужных образов, контейнеров и томов.
Как пользоваться руководством?
Необязательно выполнять все разделы последовательно; выполняйте только необходимые разделы.
Синтаксис команд command $(command) доступен во многих популярных оболочках (bash, zsh, Windows Powershell).
Удаление образов Docker
Удаление конкретного образа
Команда docker images с флагом –a позволяет узнать ID образа, который нужно удалить. Она отображает все образы, включая промежуточные уровни. Определив образы, которые нужно удалить, вы можете передать их ID команде docker rmi:
docker images -a
docker rmi Image1 Image2
Удаление недействительных образов
Образы Docker состоят из нескольких уровней. Недействительные образы – это уровень образов, которые больше не имеют никакого отношения к образам с метками. Они впустую потребляют дисковое пространство. Чтобы найти такие образы, используйте команду docker images и флаг –f (filter) со значением dangling=true. Если вы уверены, что хотите удалить все эти образы, добавьте в команду docker rmi флаг –q и укажите ID образов через пробел.
docker images -f dangling=true
Чтобы найти и удалить образы:
docker rmi $(docker images -f dangling=true -q)
Примечание: Если при создании образа не были добавлены метки, такой образ также окажется в списке недействительных образов, так как у него нет никакой связи с метками. Чтобы избежать этого, добавляйте метки при сборке образа. Команда docker tag позволяет добавить метку после сборки образа.
Удаление образов по шаблону
С помощью команд docker images и grep можно найти все образы, соответствующие шаблону. Чтобы удалить все совпадающие с шаблоном образы, можно передать команде docker rmi ID всех образов с помощью команды awk. Имейте в виду: эти утилиты не предоставляются платформой Docker и не всегда доступны в системе по умолчанию.
docker ps -a | grep «шаблон»
чтобы удалить образы:
docker images | grep «шаблон» | awk ‘
Удаление всех образов
Чтобы просмотреть все доступные образы Docker, добавьте флаг -a в команду docker images.
docker images -a
Чтобы удалить все образы, добавьте флаг –q и передайте образы команде docker rmi:
docker rmi $(docker images -a -q)
Удаление контейнеров
Удаление конкретного контейнера
Команда docker ps с флагом –a отображает все доступные контейнеры (их имена или ID).
Чтобы удалить контейнер (или несколько контейнеров), передайте имя или ID команде docker rm:
docker rm ID_или_имя_контейнера ID_или_имя_контейнера1
Удаление контейнера при остановке
Если при сборке контейнера вы точно знаете, что после выполнения задачи он станет ненужным, вы можете автоматически удалить его с помощью docker run –rm. Как только контейнер выполнит свою задачу и остановится, он будет удалён.
docker run —rm имя_контейнера
Удаление всех остановленных контейнеров
С помощью команды docker ps –a, флага –f и параметра status вы можете найти все доступные контейнеры, которые находятся в определённом состоянии: created, restarting, running, paused и exited. Например:
docker ps -a -f status=exited
Чтобы удалить все остановленные контейнеры, используйте флаг –q в команде docker rm и передайте ей ID контейнеров, которые нужно удалить:
docker rm $(docker ps -a -f status=exited -q)
Удаление контейнера с помощью нескольких фильтров
Фильтры Docker можно комбинировать. Для этого нужно просто повторно добавить флаг –f. К примеру, чтобы вывести все контейнеры со статусом created (контейнер был создан, но запущен с помощью неправильной команды) и exited, можно использовать команду:
docker ps -a -f status=exited -f status=created
Чтобы удалить эти контейнеры, нужно ввести:
docker rm $(docker ps -a -f status=exited -f status=created)
Удаление контейнеров по шаблону
Поиск контейнеров по шаблону можно выполнить с помощью команд docker ps и grep.
docker ps -a | grep «шаблон»
Найдя все контейнеры, которые соответствуют заданному шаблону, вы можете удалить их с помощью команд docker rmi, awk и xargs.
Примечание: Эти утилиты не всегда поставляются системой по умолчанию.
docker ps -a | grep «шаблон» | awk ‘
Остановка и удаление контейнера
Чтобы просмотреть все контейнеры в системе, введите:
Чтобы удалить контейнеры, передайте их ID командам docker stop и docker rm с помощью флага –q:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
Удаление томов
Удаление конкретного тома (Docker 1.9 +)
Чтобы узнать имя тома (или томов), используйте команду:
docker volume ls
Чтобы удалить том, укажите его имя в команде docker volume rm. Чтобы удалить несколько томов, укажите их имена через пробел.
docker volume rm том1 том2 том3
Удаление недействительных томов (Docker 1.9 +)
Том должен существовать независимо от контейнера. Следовательно, когда контейнер удаляется, том не удаляется автоматически. Он остаётся в системе, хотя больше не обслуживает ни один контейнер. Такие тома считаются недействительными и просто занимают место на диске.
Чтобы найти такие тома, используйте команду:
docker volume ls -f dangling=true
Чтобы удалить недействительные тома, используйте:
docker volume rm $(docker volume ls -f dangling=true -q)
Удаление тома вместе с контейнером
Если вы создали безымянный том, вы можете удалить его вместе с контейнером с помощью флага –v.
Примечание: Это работает только с безымянными контейнерами!
Когда контейнер успешно удалён, на экране отображается его ID. При этом в команде никак не обозначается удаление контейнера. Если том не имеет имени, он будет просто удалён из системы. Если у тома есть имя, он останется в системе.
docker rm -v имя_контейнера
Заключение
Данное руководство предлагает вам общие команды по удалению контейнеров, образов и томов Docker 1.9 +. Существует множество полезных комбинаций и флагов, которые не были описаны в этой статье. Узнать о доступных опциях можно в документации Docker для команд docker rmi, docker rm и docker volume rm.
Как удалить все контейнеры Docker, образы, тома и сети
Docker позволяет быстро создавать, тестировать и развертывать приложения как портативные самостоятельные контейнеры, которые могут работать практически в любой системе.
Docker не удаляет неиспользуемые объекты, такие как контейнеры, образы, тома и сети, если вы явно не скажете ему об этом. При работе с Docker можно легко накопить большое количество мусорных объектов, которые занимают много места на диске и размешивают данные, создаваемые командами Docker.
Это руководство служит «шпаргалкой», чтобы помочь пользователям Docker сохранить свою систему организованной и освободить место на диске, удалив все неиспользуемые контейнеры Docker, образы, тома и сети.
Удаляем все неиспользуемые объекты
Команда docker system prune удалит остановленные контейнеры, все висячие образы и все неиспользуемые сети:
Вы можете использовать флаг -f или —force, чтобы пропустить дополнительный запрос на подтверждение операции.
Удаление контейнеров Docker
Контейнеры Docker не удаляются автоматически при их остановке, если вы специально не указали флаг —rm при его запуске.
Удаляем один или несколько контейнеров
Чтобы удалить один или несколько образов Docker используйте команду docker container rm, после которой следует указать идентификатор контейнера, который необходимо удалить. Список всех активных и неактивных контейнеров можно получить, передав флаг -a команде docker container ls:
В качестве результата выполнения этой команды вы должны увидеть такую таблицу:
Как только вы нашли необходимый идентификатор контейнера, который хотите удалить, передайте его имя команде docker container rm. Например, чтобы удалить первые два контейнера, перечисленных выше выполните команду:
Если вы получаете сообщение об ошибке, подобное приведенному ниже, это означает, что контейнер все еще работает. Перед удалением контейнера, его необходимо остановить.
Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.
Удалить все остановленные контейнеры
Перед выполнением команды можно получить список всех неиспользуемых (остановленных) контейнеров, с помощью следующей команды:
Чтобы удалить все остановленные контейнеры, используйте команду docker container prune:
Вам будет предложено продолжить, используйте флаг-for —force, чтобы пропустить этот вопрос.
Удаляем контейнер используя фильтр
Команда docker container prune позволяет удалить контейнеры в зависимости от их состояния, используя флаг фильтрации —filter. На момент написания этой статьи дополнительно поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.
Например, чтобы удалить все образы, созданные более 12 часов назад, запустите:
Остановить и удалить все контейнеры
Вы можете получить список всех контейнеров Docker в вашей системе с помощью команды docker container ls -aq. Чтобы остановить все запущенные контейнеры, используйте команду docker container stop, после которой укажите список всех идентификаторов.
После остановки всех контейнеров их можно удалить. Используя команду docker container stop, за которой следует список идентификаторов контейнеров попробуем сделать это:
Как удалить образы Docker
Для удаления одного или нескольких образов Docker используйте команду docker images ls, чтобы найти идентификатор(ID) образа, который нужно удалить.
Вывод должен выглядеть примерно так:
Как только вы найдете образы, которые хотите удалить, передайте их идентификаторы команде docker image rm. Например, чтобы удалить первые два образа, перечисленные в выходных данных выше выполните:
Если вы получите ошибку, подобную следующей, это означает, что образ используется контейнером. Чтобы удалить образ, нужно сначала удалить контейнер.
Error response from daemon: conflict: unable to remove repository reference «centos» (must force) — container cd20b396a061 is using its referenced image 75835a67d134
Удаляем висящие и неиспользуемые образы
Docker имеет команду docker image prune, которая может использоваться для удаления висячих и неиспользуемых образов. Висячий образ — это такой образ, который не отмечен и не используется ни одним контейнером. Для удаления висячих изображений введите:
Вам будет предложено продолжить, используйте флаг -f или —force, чтобы пропустить этот вопрос.
Чтобы удалить все образы, на которые не ссылается ни один существующий контейнер, используйте флаг -a:
Удаляем образы используя фильтры
С помощью команды docker image prune можно удалить образы используя определенные условия с помощью флага фильтрации —filter.
На момент написания этой статьи в настоящее время поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.
Например, чтобы удалить все изображения, созданные более 6 минут назад, запустите:
Удаление Docker томов
Удалить один или несколько томов
Для начала, используйте команду docker volume ls для поиска идентификатора томов. Это необходимо чтобы удалить один или несколько томов Docker.
Результат выполнения команды должен выглядеть примерно так:
Теперь выберите имя или несколько имен томов, которые вы хотите удалить и передайте их в команду docker volume rm. Например, чтобы удалить первый том, указанный в выводе выше выполните:
Если вы получаете ошибку, подобную следующей, это означает, что выбранный том используется существующим контейнером. Чтобы удалить том, придется сначала удалить контейнер.
Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use — [c7188935a38a6c3f9f11297f8c98ce9996ef5ddad6e6187be62bad3001a66c8e]
Удалить неиспользуемые тома
Для удаления всех неиспользуемых томов существует команда docker volume prune:
Удаление сети Docker
Одна или несколько сетей
Перед удалением одной или нескольких сетей Docker используйте команду docker network ls, чтобы найти идентификатор сетей, которые хотите удалить.
Результат должен быть примерно таким:
После обнаружения названия сетей, передайте их идентификатор сети команде docker network rm. Например, чтобы удалить сеть с именем my-abuzov-network выполните:
Если вы получаете ошибку, подобную следующей, это означает, что сеть используется существующим контейнером. Чтобы удалить сеть, вам придется сначала удалить контейнер.
Error response from daemon: network my-abuzov-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints
Удалить неиспользуемую сеть
Используйте команду docker network prune для удаления всех неиспользуемых сетей.
Эту команду можно выполнить принудительно, используя специальный флаг -f или —force.
Удалить сети с помощью фильтров
С помощью команды docker network prune можно удалить сети по условиям, используя флаг фильтрации —filter.
На момент написания этой статьи в настоящее время поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.
Например, чтобы удалить все сети, созданные более 5 часов назад, запустите:
В этом руководстве мы показали вам некоторые общие команды для удаления контейнеров Docker, образов, томов и сетей.
Рекомендуем дополнительно проверить официальную документацию Docker. Если у вас возникли вопросы, пожалуйста, оставьте комментарий ниже.
Docker удалить все контейнеры windows
Docker позволяет с легкость упаковать ваши приложения и службы в контейнеры, благодаря чему вы можете запускать их на любой платформе. Однако, по мере работы с Docker у вас запросто может накопиться избыточное количество ненужных образов, контейнеров и томов, которые наводят бардак в выходных данных и загромождают собой место на диске.
Хотя в Docker и не предусмотрено непосредственных прямых команд для удаления ненужных образов, контейнеров и томов, данная программа предлагает пользователям все необходимые инструменты для очистки системы через командную строку. Эта небольшая шпаргалка вкратце познакомит вас с полезными командами для освобождения места на диске и поддержания вашей системы в опрятном и организованном виде за счет удаления неиспользующихся образов, контейнеров и томов Docker.
Как использовать настоящее руководство:
- Это руководство составлено в формате краткой шпаргалки, в которой приведены отрывки команд, которые необходимо вводить в командную строку.
- Необязательно читать руководство по порядку, сразу переходите к разделу, который актуален для решения вашей текущей задачи.
Синтаксис подстановки команд, command $(command) , который используется в командах, доступен во многих популярных оболочках, включая bash, zsh и Windows Powershell.
Удаление образов Docker
Удаление одного или нескольких конкретных образов
Используйте команду docker images command со флажком -a , чтобы найти ID образов, которые вы желаете удалить. Эта команда покажет вам каждый образ, включая промежуточные слои образа. После того как вы обнаружили нужный образ, который вы хотите удалить, вы можете включить их ID или тэг в команду docker rmi :
Удаление подвешенных образов
Образы Docker состоят из нескольких слоев. Подвешенные образы – это слои, которые не имеют связей с другими маркированными образами. Они больше не служат какой-либо цели и просто занимают место на диске. Их можно найти, добавив флажок фильтра -f со значением dangling=true к команде docker images. Если вы уверены, что желаете удалить подобные образы, вы можете добавить флажок -q, после чего ввести их ID после команды docker rmi :
Примечание: Если вы создали образ и не маркировали его тэгом, такой образ автоматически отобразится в перечне подвешенных образов, поскольку у него отсутствуют связи с маркированными образами. Вы можете избежать этой ситуации, присвоив образу тэг при создании, либо присвоить образу тэг позже при помощи команды docker tag .
Удаление образов согласно конкретной схеме
Вы можете найти образы, которые соответствуют схеме, при помощи комбинации команд docker images и grep . После того как вы найдете все нужные образы, вы можете использовать команду awk , чтобы ввести ID соответствующих образов в docker rmi . Обратите внимание, что данные утилиты не входят в стандартный комплект поставки платформы Docker и не обязательно доступны в системе:
Удаление всех образов
Все образы Docker в системе можно выбрать, добавив флажок -a к команде docker images . Если вы уверены, что желаете удалить все образы, добавьте флажок -q ,чтобы указать ID всех образов в команде docker rmi :
Удаление контейнеров
Удаление одного или нескольких конкретных контейнеров
Используйте команду docker ps c флажком -a , чтобы найти имена или ID контейнеров, которые вы желаете удалить:
Удаление контейнера при выходе
Если создавая контейнер, вы уже заранее знаете, что он больше не понадобится вам после того, как вы закончите работу, вы можете запустить команду docker run —rm для того, чтобы автоматически удалить контейнер после завершения работы с ним.
Запуск и удаление:
Удаление всех закрытых контейнеров
Вы можете найти контейнеры при помощи команды docker ps -a и затем отфильтровать их по статусу: созданные, перезапущенные, работающие, приостановленные или закрытые. Для того чтобы просмотреть список закрытых контейнеров, используйте флажок -f , чтобы включить фильтр по статусу. Если вы уверены, что хотите удалить указанные контейнеры, используйте -q , чтобы указать ID соответствующих контейнеров в команде docker rm .
Удаление контейнеров при помощи более одного фильтра
Фильтры Docker можно комбинировать, повторяя флажок фильтра с дополнительным значением. В результате этого будет показан список контейнеров, который соответствует одному из условий. К примеру, если вы желаете удалить все контейнеры, помеченные как «Созданные» (состояние, которое может возникать, если вы запускаете контейнер с некорректной командой), так и «Закрытые», вам необходимо использовать сразу два фильтра:
Удаление контейнеров согласно конкретной схеме
Вы можете найти все контейнеры, которые соответствуют схеме, при помощи комбинации команд docker ps и grep . После того как вы найдете все нужные контейнеры, вы можете использовать команду awk , чтобы ввести ID соответствующих контейнеров в docker rmi . Обратите внимание, что данные утилиты не входят в стандартный комплект поставки платформы Docker и не обязательно доступны в системе:
Остановка и удаление всех контейнеров
Вы можете просмотреть все контейнеры в вашей системе при помощи команды docker ps . Для того чтобы отобразить все контейнеры, необходимо добавить к команде флажок -a . Если вы уверены, что желаете удалить все контейнеры, добавьте флажок -q , чтобы перенести ID всех контейнеров в команды docker stop и docker rm :
Удаление томов
Удаление одного или нескольких конкретных томов — версия Docker 1.9 и старше
Используйте команду docker volume ls , чтобы найти имя или имена томов, которые вы желаете удалить. После этого вы можете удалить один или несколько томов, используя команду docker volume rm :
Удаление подвешенных томов — Версия Docker 1.9 и старше
Поскольку тома существуют независимо от контейнеров, то после удаления контейнера том не удаляется автоматически вместео с ним. В случае если в системе имеется том, который больше не привязан ни к одному из контейнеров, такой том называется подвешенным. Для того чтобы найти и удалить такие подвешенные тома, вы можете использовать команду docker volume ls с фильтром, который ограничивает результаты поиска до указанных томов. После того как система выдаст нужный вам список томов, вы можете добавить к команде флажок -q , чтобы перенести имена томов в команду docker volume rm :
Удаление контейнера и его тома
Если вы создали безымянный том, его можно удалить вместе с контейнером, добавив к команде флажок -v . Обратите внимание, что данная команда работает только для безымянных томов. После успешного удаления контейнера отображается его ID . Обратите внимание, что система при этом не выдает какой-либо информации касательно удаления тома. Безымянные тома просто молча удаляются вместе с контейнером. Если том имеет имя, он также молча остается в системе.
Заключение
В настоящем руководстве описаны наиболее распространенные команды, которые применяются для удаления образов, контейнеров и томов в версии Docker 1.9 и старше. Вместе с каждой командой можно использовать различные комбинации флажков. Для более подробного описания функционала, доступного в системе, смотри документацию Docker по командам docker rmi , docker rm и docker volume rm . Если вы не нашли в этом руководстве информации о решении других распространенных задач, связанных с очисткой системы от ненужных образов, контейнеров и томов, пожалуйста, напишите нам или оставьте свои предложения в комментариях.