如何按标签删除 Docker 映像,最好使用通配符?

新手上路,请多包涵

我有一些自动化流程,它们会喷出一堆带有有意义标签的 Docker 镜像。标签遵循结构化模式。

有没有办法按标签查找和删除图像?所以假设我有图像:

 REPOSITORY                  TAG
junk/root                   stuff_687805
junk/root                   stuff_384962

理想情况下,我希望能够做到: docker rmi -tag stuff_*

有什么好的模拟方法吗?

原文由 Greg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 947
2 个回答

bash 的乐趣:

 docker rmi $(docker images | grep stuff_ | tr -s ' ' | cut -d ' ' -f 3)

原文由 Michael 发布,翻译遵循 CC BY-SA 3.0 许可协议

仅使用 docker 过滤:

  docker rmi $(docker images --filter=reference="*:stuff_*" -q)

  • reference="*:stuff_*" 过滤器允许您使用通配符过滤图像;
  • -q 选项用于仅显示图像 ID。

更新:通配符像路径一样匹配。这意味着如果您的图像 id 是 my-company/my-project/my-service:v123 那么 * 不会匹配它,但 */*/* 会。有关说明,请参阅 github 问题。

原文由 Vlad-HC 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进