Как удалить docker desktop windows

Обновлено: 07.07.2024

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 '' | xargs docker rm

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

Чтобы просмотреть все доступные образы 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 '' | xargs docker rmi

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

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

Чтобы удалить контейнеры, передайте их 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 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. Если у вас возникли вопросы, пожалуйста, оставьте комментарий ниже.

Я следовал инструкциям по удалению здесь . Затем я запустил эти команды:

Поэтому после того, как я сделал все это, я запустил эту команду, чтобы увидеть, находятся ли файлы докера где-нибудь еще:

Я нашел несколько мест, где докер-файлы все еще существуют.

Docker существует в подпапках в списке выше. Я могу опубликовать каждый путь, если хотите. Здесь около 200 локаций.

Есть ли способ полностью и полностью удалить докер везде?

Чтобы полностью удалить Docker:

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

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

Вы полностью удалили Docker из системы.

Дополнительно пришлось удалить /usr/local/bin/docker-compose . Я также вспомнил, чтобы удалить /etc/docker каталог и все содержимое $ sudo iptables -L После этого я вижу записи, связанные с Docker . В моем случае мне пришлось использовать sudo apt-get purge docker-ce-cli также.

Если вы работаете в Ubuntu, мне гораздо проще удалить Docker, если он установлен с snap . Вы просто делаете:

и удалить все связанные файлы,

snap команда достаточно хорошо , но будьте осторожны , прежде чем удалить все на вашей системе с docker именем!

Вы можете идентифицировать пакеты, из которых были созданы эти файлы, с помощью команды вроде dpkg-query -S $(sudo find / -name '*docker*' -print 2>/dev/null) . Любые такие пакеты, которые вам не нужны, вы можете удалить с помощью sudo apt-get purge <package> . Пожалуйста, будьте осторожны, когда вы делаете это, так как некоторые пакеты включают некоторую поддержку Docker, но вы можете не захотеть, например, удалить текстовый редактор или файловый менеджер.

Если некоторые файлы не были получены из пакетов (на что указывает «dpkg-query: путь не найден, соответствующий пути шаблона »), вы можете удалить их по отдельности. Опять же, пожалуйста, будьте осторожны, так как могут быть файлы, не относящиеся к докеру, который вы хотите удалить, которые просто имеют строку «докер» в своих именах.

Флаг q нужен для выполнения в фоновом режиме. Он не является обязательным.

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

Нужно сделать то же самое, но вместо stop выполнить rm

docker rm $( docker ps -a q )

Альтернативный способ это system prune

docker system prune

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N] y Deleted Containers: 60136dcc356d794d23aee10d3e6440fd53204ed88ad1c45f9bb70d0f66dd1cc4 85375f0f0e5e3d196ec7b11b4f7834aadee167de6c489ce4bf90b940ddec5ea8 33efc448ad6c67ee7e61336482dd7110a059e0c78d8b0a321f0f192ee26a048e Deleted Images: deleted: sha256:409d2b2d3c0b20cfb9556bb1e8c69c6e8e8b6120c3883396a5015f109f3f25cb deleted: sha256:c26bbf7dc2369c5a9e316dbf6c8c0f79fd81b1dd92d5a4ee343060c96cabebf2 deleted: sha256:fcf59b2324beadaf9fc689bb205bc28915a78da42aee860bbb17bded2c54be13 deleted: sha256:c9952ac8387d7dc94e779d2663120f3e93a61a615b710fd7680f0dde63d0c411 deleted: sha256:7b5a2e67a82fb2512681822bfb4fae0b61c135b55ecc55b8fe0bc41ee7d60b40 deleted: sha256:bbdc7e06675baa525c1a65fbedcc3145f3271d49cf828ecd0f77aed5e31e740d deleted: sha256:08908b45bd8a5b6340e89d9a401e39a04d4c81c66a75b4fc31528c042632bdf9 deleted: sha256:75ed22a7abbe9c23df78263501d5236b7a1dd9649fba94da3aee59ba277fc2c7 deleted: sha256:30f928cfbca4c67e9c284907b304b73a0804fa19b9d8ff22896c6afb79440638 deleted: sha256:b0573c5f42fec17a41f9633532e4f0c1ce77fc111aaec5fa9293bf3975459396 deleted: sha256:a1b7d51ce64b376af6d3e24f10689f04903f7f6174c07f8515127819c4d464f0 deleted: sha256:28115231ced77eebf1e319aacf77c7373f4845f13aa4fd21864cea5b79b5998f deleted: sha256:954454106831e933798549935ed4bebb0683ccb0807cb4a0ce69537242418d4f deleted: sha256:043dfc7ae5ae1671626dc1aa082f66791f8579bdcda25c1ccd9d7938c3a352b1 deleted: sha256:32083ac1bbb41043358d3bdf20d2cf6a2b95ddd583fc5f000e723f9ae508cf46 deleted: sha256:f5578f194936295078b78ff2ba8b14807da8b7df240627f3fb85be07bc69f74d deleted: sha256:1fb565177c22d167b2f0271608e7c2e5a5868e19b36d30fd707604b4f23f0505 deleted: sha256:a1e12e8d24f2e61e9c73c7c29c23b09130fb119cd9672df7f9a03602c0beac84 deleted: sha256:ea493968f3d604b29a929813490d123a8171f2f8a23c67047866b4ee81d4df0c deleted: sha256:285e528ab55c765304d41679ae7f9b69265bf954762f51b84379212d532ad6bd deleted: sha256:b11f4e5c2b7fd12935b558f1c6361def6545574703eda262ca1c812c9e60680c deleted: sha256:af0157c41f52fcf54e4ca265fb5e121b110b66309cebc8ebab09a44eeca21ad0 deleted: sha256:77a594b76fb550d04d4b5a8c2f82bfb7f3cd5b6ac14ac8ab7550de75eb9b86f1 deleted: sha256:1e11339a7869cee0f3b2dd099dd28e1f1f5f987a01639d3e5866efc1f3879cc5 deleted: sha256:dbfcd0b2c04a3ed04f4d99a2b1e65366b43421207230efb9fc30dac37c677fa8 Total reclaimed space: 177.4MB

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

Нужно сделать то же самое, но вместо rm выполнить rmi а вместо ps выполнить images

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