如何删除基于名称的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)