как удалить образ docker linux

Как удалить все контейнеры Docker, образы, тома и сети

Docker позволяет быстро создавать, тестировать и развертывать приложения как портативные самостоятельные контейнеры, которые могут работать практически в любой системе.

Docker не удаляет неиспользуемые объекты, такие как контейнеры, образы, тома и сети, если вы явно не скажете ему об этом. При работе с Docker можно легко накопить большое количество мусорных объектов, которые занимают много места на диске и размешивают данные, создаваемые командами Docker.

Это руководство служит «шпаргалкой», чтобы помочь пользователям Docker сохранить свою систему организованной и освободить место на диске, удалив все неиспользуемые контейнеры Docker, образы, тома и сети.

Удаляем все неиспользуемые объекты

Команда docker system prune удалит остановленные контейнеры, все висячие образы и все неиспользуемые сети:

Удаление контейнеров Docker

Контейнеры Docker не удаляются автоматически при их остановке, если вы специально не указали флаг —rm при его запуске.

Удаляем один или несколько контейнеров

В качестве результата выполнения этой команды вы должны увидеть такую таблицу:

Как только вы нашли необходимый идентификатор контейнера, который хотите удалить, передайте его имя команде 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 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, которая может использоваться для удаления висячих и неиспользуемых образов. Висячий образ — это такой образ, который не отмечен и не используется ни одним контейнером. Для удаления висячих изображений введите:

Удаляем образы используя фильтры

С помощью команды 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 для удаления всех неиспользуемых сетей.

Удалить сети с помощью фильтров

С помощью команды docker network prune можно удалить сети по условиям, используя флаг фильтрации —filter.

На момент написания этой статьи в настоящее время поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.

Например, чтобы удалить все сети, созданные более 5 часов назад, запустите:

В этом руководстве мы показали вам некоторые общие команды для удаления контейнеров Docker, образов, томов и сетей.

Рекомендуем дополнительно проверить официальную документацию Docker. Если у вас возникли вопросы, пожалуйста, оставьте комментарий ниже.

Источник

Удаление образов, контейнеров и томов Docker

Docker позволяет быстро упаковать приложение или сервис в контейнер, который можно запустить в любом окружении. Однако при работе с Docker быстро накапливаются ненужные образы, контейнеры и тома данных, которые засоряют вывод и потребляют дисковое пространство.

Docker не предоставляет прямых команд для чистки, однако он предлагает набор инструментов для чистки системы с помощью командной строки. Это руководство представляет собой шпаргалку по командам Docker для чистки дискового пространства и системы путём удаления ненужных образов, контейнеров и томов.

Как пользоваться руководством?

Необязательно выполнять все разделы последовательно; выполняйте только необходимые разделы.

Удаление образов Docker

Удаление конкретного образа

Команда docker images с флагом –a позволяет узнать ID образа, который нужно удалить. Она отображает все образы, включая промежуточные уровни. Определив образы, которые нужно удалить, вы можете передать их ID команде docker rmi:

Удаление недействительных образов

Образы Docker состоят из нескольких уровней. Недействительные образы – это уровень образов, которые больше не имеют никакого отношения к образам с метками. Они впустую потребляют дисковое пространство. Чтобы найти такие образы, используйте команду docker images и флаг –f (filter) со значением dangling=true. Если вы уверены, что хотите удалить все эти образы, добавьте в команду docker rmi флаг –q и укажите ID образов через пробел.

Чтобы найти и удалить образы:

Примечание: Если при создании образа не были добавлены метки, такой образ также окажется в списке недействительных образов, так как у него нет никакой связи с метками. Чтобы избежать этого, добавляйте метки при сборке образа. Команда docker tag позволяет добавить метку после сборки образа.

Удаление образов по шаблону

С помощью команд docker images и grep можно найти все образы, соответствующие шаблону. Чтобы удалить все совпадающие с шаблоном образы, можно передать команде docker rmi ID всех образов с помощью команды awk. Имейте в виду: эти утилиты не предоставляются платформой Docker и не всегда доступны в системе по умолчанию.

чтобы удалить образы:

Удаление всех образов

Чтобы удалить все образы, добавьте флаг –q и передайте образы команде docker rmi:

Удаление контейнеров

Удаление конкретного контейнера

Команда docker ps с флагом –a отображает все доступные контейнеры (их имена или ID).

Чтобы удалить контейнер (или несколько контейнеров), передайте имя или ID команде docker rm:

docker rm ID_или_имя_контейнера ID_или_имя_контейнера1

Удаление контейнера при остановке

Если при сборке контейнера вы точно знаете, что после выполнения задачи он станет ненужным, вы можете автоматически удалить его с помощью docker run –rm. Как только контейнер выполнит свою задачу и остановится, он будет удалён.

Удаление всех остановленных контейнеров

С помощью команды docker ps –a, флага –f и параметра status вы можете найти все доступные контейнеры, которые находятся в определённом состоянии: created, restarting, running, paused и exited. Например:

Чтобы удалить все остановленные контейнеры, используйте флаг –q в команде docker rm и передайте ей ID контейнеров, которые нужно удалить:

Удаление контейнера с помощью нескольких фильтров

Фильтры Docker можно комбинировать. Для этого нужно просто повторно добавить флаг –f. К примеру, чтобы вывести все контейнеры со статусом created (контейнер был создан, но запущен с помощью неправильной команды) и exited, можно использовать команду:

Чтобы удалить эти контейнеры, нужно ввести:

Удаление контейнеров по шаблону

Поиск контейнеров по шаблону можно выполнить с помощью команд docker ps и grep.

Найдя все контейнеры, которые соответствуют заданному шаблону, вы можете удалить их с помощью команд docker rmi, awk и xargs.

Примечание: Эти утилиты не всегда поставляются системой по умолчанию.

Остановка и удаление контейнера

Чтобы просмотреть все контейнеры в системе, введите:

Чтобы удалить контейнеры, передайте их ID командам docker stop и docker rm с помощью флага –q:

Удаление томов

Удаление конкретного тома (Docker 1.9 +)

Чтобы узнать имя тома (или томов), используйте команду:

Чтобы удалить том, укажите его имя в команде docker volume rm. Чтобы удалить несколько томов, укажите их имена через пробел.

docker volume rm том1 том2 том3

Удаление недействительных томов (Docker 1.9 +)

Том должен существовать независимо от контейнера. Следовательно, когда контейнер удаляется, том не удаляется автоматически. Он остаётся в системе, хотя больше не обслуживает ни один контейнер. Такие тома считаются недействительными и просто занимают место на диске.

Чтобы найти такие тома, используйте команду:

Чтобы удалить недействительные тома, используйте:

Удаление тома вместе с контейнером

Если вы создали безымянный том, вы можете удалить его вместе с контейнером с помощью флага –v.

Примечание: Это работает только с безымянными контейнерами!

Когда контейнер успешно удалён, на экране отображается его ID. При этом в команде никак не обозначается удаление контейнера. Если том не имеет имени, он будет просто удалён из системы. Если у тома есть имя, он останется в системе.

Заключение

Данное руководство предлагает вам общие команды по удалению контейнеров, образов и томов Docker 1.9 +. Существует множество полезных комбинаций и флагов, которые не были описаны в этой статье. Узнать о доступных опциях можно в документации Docker для команд docker rmi, docker rm и docker volume rm.

Источник

Удаление образов, контейнеров и томов Docker

Published on May 21, 2020

Полезные советы по Docker

Введение

Docker позволяет легко помещать приложения и службы в контейнеры, чтобы их можно было запускать где угодно. Однако при работе с Docker можно легко накопить чрезмерное количество неиспользуемых образов, контейнеров и томов данных, замедляющих работу и потребляющих место на диске.

Docker предоставляет все необходимые инструменты для очистки системы из командной строки. В этом руководстве с полезными советами кратко описываются полезные команды для освобождения места на диске и организации системы посредством удаления неиспользуемых образов, контейнеров и томов Docker.

Использование этого руководства:

Очистка всех неиспользуемых или не связанных с контейнерами образов, контейнеров, томов и сетей

В Docker имеется команда, очищающая все не связанные с контейнерами ресурсы, в том числе образы, контейнеры, тома и сети:

Удаление образов Docker

Удаление одного или нескольких конкретных образов

Список:

Удаление:

Удаление образов, не привязанных к контейнеру

Примечание. Если вы создали образ и не пометили его тегами, он будет отображаться в списке несвязанных образов, поскольку он не привязан к образу с тегом. Этого можно избежать, указав тег при сборке образа. Также вы можете помечать тегами уже существующие образы с помощью комнады docker tag.

Список:

Удаление:

Удаление образов по шаблону

Список:

Удаление:

Удаление всех образов

Список:

Удаление:

Удаление контейнеров

Удаление одного или нескольких конкретных контейнеров

Список:

Удаление:

Удаление контейнера при выходе

Запуск и удаление:

Удаление всех контейнеров, из которых выполнен выход

Список:

Удаление:

Удаление контейнеров с использованием нескольких фильтров

Фильтры Docker можно комбинировать, повторяя флаг фильтра с дополнительным значением. В результате выводится список контейнеров, соответствующих любому из указанных условий. Например, если вы хотите удалить все контейнеры со статусом Created (статус, который может возникнуть при запуске контейнера недопустимой командой) или Exited, вы можете использовать два фильтра:

Список:

Удаление:

Удаление контейнеров по шаблону

Список:

Удаление:

Остановка и удаление всех контейнеров

Список:

Удаление:

Удаление томов

Удаление одного или нескольких томов — Docker 1.9 и выше

Используйте команду docker volume ls для определения названий томов, которые вы хотите удалить. Затем вы можете удалить один или несколько томов с помощью команды docker volume rm :

Список:

Удаление:

Поскольку тома существуют независимо от контейнеров, при удалении контейнера тома не удаляются автоматически. Если том существует, но не связан ни с какими контейнерами, он называется несвязанным томом. Чтобы найти такие тома и убедиться в необходимости их удаления, вы можете использовать команду docker volume ls с фильтром, чтобы в результатах выводились только несвязанные тома. Если список вас устроит, вы можете удалить все тома с помощью команды docker volume prune :

Список:

Удаление:

Удаление контейнера и его тома

Удаление:

Заключение

Источник

Как удалить контейнеры, образы, тома и сети Docker

Docker — это платформа для контейнеризации с открытым исходным кодом, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых контейнеров, которые могут работать практически где угодно.

При работе с Docker вы можете быстро накопить большое количество неиспользуемых объектов, которые занимают значительное дисковое пространство и загромождают вывод, производимый командами Docker. Docker не удаляет неиспользуемые объекты, такие как контейнеры, изображения, тома и сети, если вы явно не укажете ему это сделать.

Эта статья служит «шпаргалкой», чтобы помочь пользователям Docker поддерживать порядок в своей системе и освобождать дисковое пространство, удаляя неиспользуемые контейнеры Docker, образы, тома и сети.

Удаление всех неиспользуемых объектов Docker

Команда docker system prune удаляет все остановленные контейнеры, зависшие образы и неиспользуемые сети:

Вам будет предложено подтвердить операцию:

Удаление контейнеров Docker

Удаление одного или нескольких контейнеров

Результат должен выглядеть примерно так:

Если вы получили сообщение об ошибке, подобное показанному ниже, это означает, что контейнер запущен. Вам нужно будет остановить контейнер, прежде чем снимать его.

Удаление всех остановленных контейнеров

Чтобы удалить все остановленные контейнеры, вызовите команду docker container prune :

Удаление контейнеров с помощью фильтров

Например, чтобы удалить все изображения, созданные более 12 часов назад, вы должны запустить:

Остановите и удалите все контейнеры

Чтобы остановить все запущенные контейнеры, введите команду docker container stop а затем идентификаторы контейнеров:

Удаление образов Docker

Когда вы загружаете образ Docker, он сохраняется на сервере, пока вы не удалите его вручную.

Удаление одного или нескольких изображений

Чтобы удалить один или несколько образов Docker, сначала вам нужно найти идентификаторы образов:

Результат должен выглядеть примерно так:

Если вы получили сообщение об ошибке, подобное приведенному ниже, это означает, что существующий контейнер использует изображение. Чтобы удалить изображение, вам сначала нужно удалить контейнер.

Удаление болтающихся изображений

Docker предоставляет команду удаления docker image prune которую можно использовать для удаления оборванных и неиспользуемых образов.

Оборванное изображение — это изображение, которое не помечено и не используется никаким контейнером. Чтобы удалить болтающиеся изображения, введите:

Удаление всех неиспользуемых изображений

Удаление изображений с помощью фильтров

Например, чтобы удалить все изображения, созданные более семи дней (168 часов) назад, вы должны запустить:

Удаление томов Docker

Удаление одного или нескольких томов

Чтобы удалить один или несколько томов Docker, запустите команду docker volume ls чтобы найти ID томов, которые вы хотите удалить.

Результат должен выглядеть примерно так:

Если вы получаете сообщение об ошибке, подобное показанной ниже, это означает, что существующий контейнер использует том. Чтобы удалить объем, вам сначала нужно удалить емкость.

Удаление всех неиспользуемых томов

Чтобы удалить все неиспользуемые тома, выполните команду docker image prune :

Удаление сетей Docker

Удаление одной или нескольких сетей

Чтобы удалить одну или несколько сетей Docker, используйте команду docker network ls чтобы найти идентификаторы сетей, которые вы хотите удалить.

Результат должен выглядеть примерно так:

Если вы получаете сообщение об ошибке, подобное показанной ниже, это означает, что существующий контейнер использует сеть. Чтобы удалить сеть, вы должны сначала удалить контейнер.

Удаление всей неиспользуемой сети

Используйте команду docker network prune чтобы удалить все неиспользуемые сети.

Вам будет предложено продолжить:

Удаление сетей с помощью фильтров

Например, чтобы удалить все сети, созданные более 12 часов назад, запустите:

Выводы

Мы показали вам некоторые из распространенных команд для удаления контейнеров, образов, томов и сетей Docker.

Если у вас есть вопросы, оставьте комментарий ниже.

Источник

Как удалить образы, контейнеры и тома Docker

Docker делает простым обёртывание ваших приложений и служб в контейнеры чтобы они могли быть запущены где угодно. Тем не менее, по мере работы с Docker быстро увеличивается количество неиспользуемых образов, контейнеров и томов с данными, которые загрумождают вывод и занимают дисковое пространство.

Docker не предоставляет прямых команд для очистки, но он даёт нам все инструменты, которые нужны для очистки системы из командной строки. Эта инструкция расскажет вам о командах, которые полезны для очистки дискового пространства и сохранения вашей системы организованной посредством удаления неиспользуемых образов, контейнеров и томов Docker.

Как пользоваться этой инструкцией:

Эта запись означает, что результат выполнения команды $(command) передаётся в качестве аргументов для выполнения команде command.

Удаление образов Docker

Удаление одного или нескольких определённых образов

Используйте команду docker images с флагом -a чтобы узнать ID образов, которые вы хотите удалить. Она покажет вам каждый образ, включая промежуточные слови образов. Когда вы определили образы, которые хотите удалить, вы можете передать их ID или тэг в docker rmi:

Удаление «висячих» (dangling) образов

Образы Docker состоят из нескольких слоёв. Висячие (dangling) образы – это слои, которые не имеют связей к любому образу с тэгом. Они больше не используются для каких-либо целей и только потребляют дисковое пространство. Их можно найти добавив флаг фильтрации, -f со значением dangling=true к команде docker images. Убедившись, что вы хотите их удалить, вы можете добавить флаг -q и указать их ID в docker rmi:

Помните: если вы создали образ без присвоения ему тэга, образ появится в списке висячих образов, поскольку он не ассоциирован с образов, имеющим тэг. Вы можете избежать этой ситуации указав тэг когда вы делаете образ, также впоследствии вы можете добавить тэг командой docker tag.

Удаление образов в соответствии с образцом

Вы можете найти все образы, которые соответствуют образцу используя комбинацию docker images и grep. Когда вы удовлетворены найденными результатами, вы можете удалить их используя awk для передачи ID to docker rmi. Помните, что эти утилиты не являются частью Docker и могут отсутствовать на вашей системе:

Удаление всех образов

Вывести список всех образов Docker вы можете добавив -a к команде docker images. Если вы уверены, что хотите удалить их все, вы можете добавить флаг -q для передачи ID образа в docker rmi:

Удаление контейнеров

Удаление одного или более определённых контейнеров

Используйте команду docker ps с флагом -a для определения имён или ID контейнеров, которые вы хотите удалить:

Удаление контейнера при выходе

Удаление всех существующих контейнеров

Удаление контейнеров используя более чем один фильтр

Фильтры Docker могут быть скомбинированы повторением тэга фильтра с дополнительным значением. Этот результаты, которые соответствуют хотя бы одному из условий. Например, вы хотите удалить все контейнеры отмеченые как Created (состояние, которое может возникнуть в результате запуска контейнера с неверной командой) или Exited вы можете использовать два фильтра:

Удаление контейнеров в соответствии с образцом

Вы можете найти все контейнеры, которые соответствуют образцу, используя комбинацию docker ps и grep. Когда вам удалось составить список, удовлетворяющий вашим желаниям для удаления, вы можете использовать awk и xargs для передачи ID в docker rmi. Помните, что эти утилиты не поставляются с Docker и не обязательно присутствуют в вашей системе:

Остановить и удалить все контейнеры

Просмотреть все контейнеры на вашей системе вы можете с docker ps. Добавление флаг -a покажет все контейнеры. Когда вы уверены, что вы хотите удалить их, добавьте флаг -q для передачи ID в команды docker stop и docker rm:

Удаление томов

Используйте команду docker volume ls для нахождения имён томов или имён, которые вы хотите удалить. Затем вы можете удалить один или более томов командой docker volume rm:

Поскольку по своей сути тома должны существовать независимо от контейнеров, когда контейнер удаляется, том при этом не удаляется автоматически. Когда существует том не соединённый больше ни с каким из контейнеров, то он называется висячий (dangling) том. Для их обнаружения можно использовать команду docker volume ls с фильтром для ограничения результатов висячими томами. Когда вы удовлетворены результатами, вы можете добавить флаг -q для передачи имён томов в docker volume rm:

Удаление контейнера и его тома

Если вы создали том без названия, он может быть удалён в то же время что и контейнер, для этого есть флаг -v. Помните, что это работает только с безымянными томами. Когда контейнер успешно удалён, отображается его ID. Помните, что об удалении тома нет упоминания. Если он без имени, он незаметно удаляется из системы. Если с именем – он остаётся.

Заключение

Эта инструкция описала некоторые из популярных команд, используемых для удаления образов, контейнеров и томов начиная с Docker 1.9. Имеется много других комбинаций и флагов, которые могут использоваться для этих целей. Чтобы узнать их, посмотрите документацию Docker по docker rmi, docker rm и docker volume rm.

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • как удалить оборудование в windows 10
  • как удалить обои экрана блокировки виндовс 10
  • как удалить обновления установленные обновления виндовс 10
  • как удалить обновления приложений windows 10
  • как удалить обновления операционной системы windows kb4074594 и kb4074598

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии