2016-10-17 3 views

ответ

10

Попробуйте следующее:

docker rmi $(docker images |grep 'imagename') 
+1

Текущая версия Докер не поддерживает эту (не Grep): Docker RMI $ ('ImageName' Docker изображений) – Charlie

+0

Текущая версия Докер кажется, чтобы поддержать это - может быть, я что-то не хватает? - docker rmi 'imagename' – Charlie

+2

@Charlie Я думаю, что большинство людей ищут способ сопоставить все изображения, которые соответствуют «* imagename», а не одно изображение с именем точно «imagename». – RJFalconer

11

Чуть более точная версия - только на оглавлению имени репозитория:

docker rmi $(docker images --format '{{.Repository}}' | grep 'imagename') 
+3

Это должно считаться только правильным ответом – Gajotres

+6

, но только удаляет изображения, помеченные как последние 'docker rmi $ (docker images --format '{{.Repository}}: {{. Tag}}' | grep 'imagename')' – Drew

0

Я также получил еще один краткий ответ. Единственное изменение - удалить ненужный флаг -I {}.

docker images | grep 'imagename' | xargs docker rmi

0
docker rmi `docker images | awk '$1 ~ /imageName/ {print $3}'` 

Это удалит все изображения по имени "ImageName". В некоторых случаях это может привести к ошибке, например, «изображение ссылается на один или несколько репозиториев». В этом случае использовать силу delete.

docker rmi -f `docker images | awk '$1 ~ /imageName/ {print $3}'` 

Другой способ может быть:

docker images | awk '{ OFS = ":" }$1 ~ /imageName/ {print $1,$2}' 
0

docker images фактически использует первый позиционный аргумент в качестве имени изображения для фильтрации. Нет необходимости в grep и awk. Опция -q вернет только соответствующие идентификаторы изображений, которые могут быть поданы на docker rmi.

docker rmi --force $(docker images -q imagename | uniq)