如何删除基于名称的docker图像?

我想删除包含给定string( imagename )的所有版本的docker映像。
我已经尝试了下面,但它似乎并没有工作:

docker images | grep 'imagename' | xargs -I {} docker rmi

尝试以下操作:

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

稍微更精确的版本 – 仅在存储库名称上进行刷新:

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

我也得到了另一个简洁的答案。 唯一的改变是删除不必要的-I {}标志。

docker images | grep 'imagename' | xargs docker rmi

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

这将按名称“imageName”删除所有图像。 在某些情况下,这可能会导致像“在一个或多个存储库中引用图像”的错误。 在这种情况下,使用强制删除。

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

另一种方式可以是:

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

docker images实际上使用第一个位置参数作为图像名称来过滤。 不需要grep和awk。 -q选项将只返回可以input到docker rmi的匹配图像ID。

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