root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
Я пробовал следующее:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
И следующее:
docker rmi $(docker images -f "dangling=true" -q)
Получите следующую ошибку:
docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
docker rmi $(docker images -a | grep "^<none>" | awk '{print $3}')
docker rmi $(docker images | grep "<none>" | awk "{print $3}")
docker rmi $(docker images -f dangling=true -q)
docker images
:)Ответы:
Вы можете попробовать и перечислить только немаркированные изображения (без меток или с меткой без меток):
Однако некоторые из этих немаркированных изображений могут понадобиться другим.
Я предпочитаю удалять только висящие изображения :
Как я упоминал для docker 1.13+ в сентябре 2016 г. в разделе « Как удалить старые и неиспользуемые образы Docker », вы также можете выполнить
image prune
команду :При этом Джанака Бандара упоминает в комментариях :
Джанака ссылается на « Как удалить подписанное изображение с меткой » из книги Пола В. Новарезе :
Обратите внимание, что Пол также упоминает выпуск Moby 18892 :
источник
<none>
удалило изображения с тегами (напримерfoo/bar:<none>
); Мне пришлось использоватьdocker images --digests
и,docker rmi foo/bar@<digest>
как описано на сайте success.docker.com/KBase/…sudo docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.35/images/json?filters=%7B%22dangling%22%3A%7B%22true%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied "docker rmi" requires at least 1 argument. See 'docker rmi --help'. Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] [flags] Remove one or more images
hutber@hutber-blade /var/www/dockerfile-wizard $ sudo docker images --filter "dangling=true" -q --no-trunc sha256:c58f4e4b10b1f862d78f96e90bdf13ffe37993279d0992be46d5c15dad51421e sha256:db28e821bc3f337caf711a664bc529be5db8894dd73c5b013ad814cc1e9fc21b sha256:257936750a7d43ae77c713c2cb18342be935de7d3b8fad23d6664fc64acfe753 sha256:6b815cefeb527885b2b9dd831f7f40b05942f00d1367274833a6274154d8ce43
Вы можете попробовать это просто
источник
--force
в конце. Таким образом, команда будет выглядеть так:docker images | grep none | awk '{ print $3; }' | xargs docker rmi --force
docker image prune удаляет все болтающиеся изображения (те, у которых нет тега). docker image prune -a также удалит все изображения, не имеющие контейнера, который их использует.
Разница между висячими и неиспользуемыми изображениями объясняется в этом потоке stackoverflow .
источник
Ты можешь идти
docker rmi $(docker images -f "dangling=true" -q)
. Дополнительные параметры см. В документации к изображениям .источник
Согласно документации докера вы можете перечислить только немаркированные (висячие) изображения с
и перенаправим их на
docker rmi
такую команду:Обратите внимание на
-q
параметр, который показывает только числовые идентификаторы контейнеров.источник
Вы можете использовать,
--force
чтобы не запрашивать подтверждениеисточник
Просто запустите эту команду:
источник
Я нашел
docker image prune -f
наиболее полезным и использую его все время в повседневной работе, использование тега-f
не требует подтверждения. Подробнее здесьисточник
Удалите изображения, которые имеют
none
имя репозитория, используя следующее:Удалите изображения с
none
тегом или именем репозитория:источник
источник
docker system prune
сделает свое дело, он удалитНо используйте его с осторожностью!
источник
Чтобы удалить все изображения,
none
мы должны убедиться, что мы удалили все остановленные контейнеры, которые они могут использовать run:тогда мы можем удалить все изображения:
источник
Чтобы удалить болтающиеся изображения, используйте:
Пожалуйста, обратитесь к моему ответу здесь для более подробного описания: https://unix.stackexchange.com/a/445664/292327
источник
Следующая команда работает для меня. это просто "" изображения с помощью grep, получение идентификатора изображения докера и удаление всех изображений. Простая единственная команда, как и должно.
docker rmi $(docker images |grep "<none>"| awk '{print $3}')
источник
Это продолжение ответа tansadio:
Если вы получаете следующую ошибку:
Вы можете заставить его
--force
:источник
Далее будут удалены все
<none>
изображенияВы можете принудительно удалить его, изменив
docker rmi
на,docker rmi -f
хотя я не рекомендую этого делать.Некоторые
<none>
изображения могут быть связаны с другими изображениями, поэтому на всякий случай не используйте-f
теги.источник
Это просто и понятно,
Даже мне потребовалось 3 дня, чтобы понять эту простую и четкую ошибку.
Образ докера не создан
Затем я удалил 8-ю строку из Dockerfile, на этот раз это был сигнал успеха.
Он говорит, что тег dem: expo успешно помечен, эта строка отображается в процессе докера.
источник
docker rmi -f $ (docker images -a | awk 'NR> 1 && $ 2 == "" {print $ 3}')
источник
Все
Совместное использование команды PowerShell для любителей Windows (на случай, если у вас нет bash, grep или awk)
источник
Выполните следующую команду, чтобы удалить изображения с помощью docker rmi
источник
Удалить все вышедшие контейнеры
или убрать тару по шаблону
источник
попробуйте это, чтобы увидеть список идентификаторов изображений докеров с тегом
<none>
а затем вы можете удалить все изображение с тегом
<none>
. это сработало для меня.источник
100% работает: образы докеров | grep none | awk '{print $ 3}' | xargs docker rmi -f
источник
пытаться
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "<none>" {print $3}')
, хотя могут быть более чистые командыобновленный
источник
docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "" {print $3}
ничего не делает!Просто удалите изображения, используя их идентификаторы:
источник
Оборванные изображения - это призраки из предыдущих сборок и сборок, просто удалите их с помощью: docker rmi $ (docker images -f "dangling = true" -q)
источник
Указаны следующие изображения, где они используются. Я думаю, эта команда избавляет от ненужных изображений.
источник