- Удаление образов, контейнеров и томов Docker
- Как пользоваться руководством?
- Удаление образов Docker
- Удаление конкретного образа
- Удаление недействительных образов
- Удаление образов по шаблону
- Удаление всех образов
- Удаление контейнеров
- Удаление конкретного контейнера
- Удаление контейнера при остановке
- Удаление всех остановленных контейнеров
- Удаление контейнера с помощью нескольких фильтров
- Удаление контейнеров по шаблону
- Остановка и удаление контейнера
- Удаление томов
- Удаление конкретного тома (Docker 1.9 +)
- Удаление недействительных томов (Docker 1.9 +)
- Удаление тома вместе с контейнером
- Заключение
- Как удалить контейнеры, образы, тома и сети Docker
- Удаление всех неиспользуемых объектов Docker
- Удаление контейнеров Docker
- Удаление одного или нескольких контейнеров
- Удаление всех остановленных контейнеров
- Удаление контейнеров с помощью фильтров
- Остановите и удалите все контейнеры
- Удаление образов Docker
- Удаление одного или нескольких изображений
- Удаление болтающихся изображений
- Удаление всех неиспользуемых изображений
- Удаление изображений с помощью фильтров
- Удаление томов Docker
- Удаление одного или нескольких томов
- Удаление всех неиспользуемых томов
- Удаление сетей Docker
- Удаление одной или нескольких сетей
- Удаление всей неиспользуемой сети
- Удаление сетей с помощью фильтров
- Выводы
- Как удалить контейнеры-докеры, изображения, тома и сети
- Удаление всех неиспользуемых объектов
- Удаление контейнеров для докеров
- Удаление одного или нескольких контейнеров
- Удалить все остановленные контейнеры
- Удаление контейнеров с использованием фильтров
- Остановить и удалить все контейнеры
- Удаление изображений докеров
- Удаление одного или нескольких изображений
- Удалить оборванные и неиспользуемые изображения
- Удаление изображений с использованием фильтров
- Удаление докеров
- Удаление одного или нескольких томов
- Удаление неиспользуемых томов
- Удаление докерных сетей
- Удалите одну или несколько сетей
- Удалить неиспользуемую сеть
- Удаление сетей с использованием фильтров
- Заключение
Удаление образов, контейнеров и томов 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
Команда 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 .
Если у вас есть вопросы, оставьте комментарий ниже.
Источник
Как удалить контейнеры-докеры, изображения, тома и сети
Главное меню » Операционная система Linux » Как удалить контейнеры-докеры, изображения, тома и сети
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.
Источник