Удалить docker centos 7

Обновлено: 02.07.2024

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

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

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

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

Синтаксис замены команды command $( command ) , используемый в командах, доступен во многих популярных оболочках, включая bash, zsh и Windows Powershell.

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

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

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

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

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

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

Список:

Удаление:

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

Образы Docker состоят из нескольких слоев. Несвязанные образы — это слои, не имеющие связей с каким-либо образами с тегами. У них нет никакого назначения, и они просто занимают место на диске. Их можно найти, добавив флаг фильтра -f со значением dangling=true в команду docker images . Если вы уверены, что хотите удалить их, вы можете использовать команду docker images purge :

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

Список:

Удаление:

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

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

Список:

Удаление:

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

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

Список:

Удаление:

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

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

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

Список:

Удаление:

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

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

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

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

Вы можете найти контейнеры с помощью команды docker ps -a и отфильтровать их по статусу: created (создан), restarting (перезапускается), running (работает), paused (пауза) или exited (выполнен выход). Чтобы просмотреть список контейнеров, из которых выполнен выход, используйте флаг -f для фильтрации по статусу. Убедитесь, что вы хотите удалить эти контейнеры, и используйте флаг -q для передачи идентификаторов в команду docker rm .

Список:

Удаление:

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

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

Список:

Удаление:

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

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

Список:

Удаление:

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

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

Список:

Удаление:

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

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

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

Список:

Удаление:

Удаление несвязанных томов - Docker 1.9 и выше

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

Список:

Удаление:

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

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

Удаление:

Заключение

В этом руководстве рассказывается о некоторых распространенных командах, используемых для удаления образов, контейнеров и томов с помощью Docker. Существует много других комбинаций команд и флагов. Более полную информацию можно найти в документации Docker по командам docker system prune , docker rmi , docker rm и docker volume rm . Если вы хотели бы увидеть в этом руководстве часто встречающиеся задачи по очистке системы, задавайте вопросы и оставляйте свои предложения в комментариях.

Favorite

Добавить в избранное

Главное меню » Операционная система Linux » Как удалить контейнеры-докеры, изображения, тома и сети

(1 оценок, среднее: 5,00 из 5)

Установить Docker 1.11 на Ubuntu 16.04 LTS x64

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

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

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

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

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

Вам будет предложено продолжить, используйте флаг -f или --force чтобы обойти запрос.

Если вы также хотите удалить все неиспользуемые тома, передайте флаг --volumes :

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

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

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

Для удаления одного или нескольких изображений Docker используйте команду docker container rm , за которой следует идентификатор контейнеров, которые вы хотите удалить.

Вы можете получить список всех активных и неактивных контейнеров, передав флаг -a команде docker container ls :

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

Как только вы узнаете о контейнерах CONTAINER ID , которые хотите удалить, перейдите к команде docker container rm . Например, чтобы удалить первые два контейнера, перечисленных в приведенном выше выпуске, выполните:

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

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

Перед выполнением команды удаления вы можете получить список всех неработающих (остановленных) контейнеров, которые будут удалены с помощью следующей команды:

Для удаления всех остановленных контейнеров используйте команду docker container prune :

Вам будет предложено продолжить, используйте флаг -f или --force для обхода запроса.

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

Команда docker container prune позволяет удалять контейнеры на основе условия с использованием флага фильтрации --filter . На момент написания этой статьи в настоящее время поддерживаются фильтры являются until и label . Вы можете использовать несколько фильтров, передавая несколько флагов --filter .

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

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

Вы можете получить список всех контейнеров Docker в вашей системе с помощью команды docker container ls -aq .

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

После остановки всех контейнеров вы можете удалить их, используя команду docker container stop , за которой следует список идентификаторов контейнеров.

Удаление изображений докеров

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

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

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

После того как вы расположены изображения , которые вы хотите удалить, передать их IMAGE ID в команду docker image rm . Например, чтобы удалить первые два изображения, перечисленные в приведенном выше выводе, выполните:

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

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

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

Вам будет предложено продолжить, используйте флаг -f или --force для обхода запроса.

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

Чтобы удалить все изображения, на которые не ссылается какой-либо существующий контейнер, а не только свисающие, используйте флаг -a :

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

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

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

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

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

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

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

Когда вы найдете тома VOLUME NAME , которые хотите удалить, передайте их команде docker volume rm . Например, чтобы удалить первый том, указанный в выведенном выше выпуске:

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

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

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

Вам будет предложено продолжить, используйте флаг -f или --force для обхода запроса.

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

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

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

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

После того как вы расположены сети , которые вы хотите удалить, передать их NETWORK ID в команду docker network rm . Например, чтобы удалить сеть с именем my-bridge-network выполните:

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

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

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

Вам будет предложено продолжить, используйте флаг -f или --force для обхода запроса.

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

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

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

Заключение

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

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

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

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

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

Используйте параметр -f ( --force ), чтобы обойти приглашение.

Если вы хотите удалить все неиспользуемые изображения, а не только болтающиеся, добавьте к команде параметр -a ( --all ):

По умолчанию команда не удаляет неиспользуемые тома, чтобы предотвратить потерю важных данных. Чтобы удалить все неиспользуемые тома, передайте параметр --volumes :

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

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

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

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

Вы можете получить список всех контейнеров , вызвав команду docker container ls с параметром -a :

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

Как только вы узнаете CONTAINER ID контейнеров, которые хотите удалить, передайте его команде docker container rm . Например, чтобы удалить первые два контейнера, перечисленные в выходных данных выше, вы должны запустить:

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

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

Если вы хотите получить список всех неработающих (остановленных) контейнеров, которые будут удалены с помощью docker container prune , используйте следующую команду:

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

Команда docker container prune позволяет удалять контейнеры в зависимости от определенного условия с помощью параметра --filter .

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

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

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

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

Команда docker container ls -aq генерирует список всех контейнеров.

После остановки всех контейнеров удалите их с помощью команды docker container rm , а затем списка идентификаторов контейнеров.

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

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

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

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

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

После того, как вы найдете изображения, которые хотите удалить, передайте их IMAGE ID команде docker image rm . Например, чтобы удалить первые два изображения, перечисленные в выходных данных выше, вы должны запустить:

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

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

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

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

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

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

С помощью команды docker image prune вы также можете удалять изображения в зависимости от определенного условия с параметром --filter .

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

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

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

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

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

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

Как только вы найдете VOLUME NAME тома томов, которые хотите удалить, передайте их команде docker volume rm . Например, чтобы удалить первый том, указанный в выходных данных выше, запустите:

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

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

Используйте параметр -f или --force чтобы обойти приглашение.

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

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

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

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

После того как вы найдете сети, которые хотите удалить, передайте их NETWORK ID команде docker network rm . Например, чтобы удалить сеть с именем my-bridge-network , запустите:

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

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

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

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

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

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

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

Выводы

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

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

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


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

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

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

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

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

Чтобы удалить один или несколько образов 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:

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

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

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

Вы можете получить список всех контейнеров Docker в вашей системе с помощью команды docker container ls -aq. Чтобы остановить все запущенные контейнеры, используйте команду docker container stop, после которой укажите список всех идентификаторов.

После остановки всех контейнеров их можно удалить. Используя команду docker container stop, за которой следует список идентификаторов контейнеров попробуем сделать это:

Как удалить образы Docker

Для удаления одного или нескольких образов Docker используйте команду docker images ls, чтобы найти идентификатор(ID) образа, который нужно удалить.

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

Как только вы найдете образы, которые хотите удалить, передайте их идентификаторы команде docker image rm. Например, чтобы удалить первые два образа, перечисленные в выходных данных выше выполните:

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

Удаляем висящие и неиспользуемые образы

Docker имеет команду docker image prune, которая может использоваться для удаления висячих и неиспользуемых образов. Висячий образ — это такой образ, который не отмечен и не используется ни одним контейнером. Для удаления висячих изображений введите:

Чтобы удалить все образы, на которые не ссылается ни один существующий контейнер, используйте флаг -a:

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

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

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

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

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

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

Теперь выберите имя или несколько имен томов, которые вы хотите удалить и передайте их в команду docker volume rm. Например, чтобы удалить первый том, указанный в выводе выше выполните:

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

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

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

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

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

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

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

Читайте также: