如何从 docker image prune 命令中排除少量镜像?

问题描述 投票:0回答:1

我的服务器上有以下图像。

myrepo/oneimage:tag1

myrepo/oneimage:tag2

myrepo/secondimage:tag

myrepo/thirdimage:tag

我正在运行命令

docker image prune -a -f
来清理服务器上的所有 docker 镜像。但我希望该命令不要删除几个图像。因此,我在图像中添加了一个标签,即
LABEL imagename="myimage"
myrepo/oneimage:tag1
myrepo/oneimage:tag2
。我修改了 prune 命令如下,但它没有按我想要的方式工作。

docker image prune -f --filter label!=imagename="myimage"
- 不删除任何图像

docker image prune -f --filter="label!=imagename=myimage"
- 不删除任何图像

docker image prune -a -f --filter="label!=imagename=myimage"
- 删除所有图像,包括带有标签
imagename="myimage"

的图像

如何使用 docker image prune 删除除

myrepo/oneimage:tag1
myrepo/oneimage:tag2
之外的所有图像?

docker docker-registry docker-image
1个回答
0
投票

你可以试试这个方法:

  • 获取不需要删除的图像的图像ID(在您的情况下是
    myrepo/oneimage:tag1
    myrepo/oneimage:tag1
    )。
  • 将上面 2 个图像的图像 ID 替换为下面命令的
    ImageID1
    ImageID2
  • 运行命令
docker rmi $(docker image | grep -v "ImageID1" | grep -v "ImageID2" | awk 'NR>1 {print $3}')

解释:

  • 上面的命令将按 ID 列出并删除所有图像,除了您需要保留的 2 张图像。
© www.soinside.com 2019 - 2024. All rights reserved.