即使没有容器正在运行,也无法删除图像

新手上路,请多包涵

我的机器中有多个停止的容器和图像。

我想清理并删除所有容器:

docker ps -a 什么都不返回。

我运行 docker rmi $(docker images -q) 来删除缓存的图像,但我得到:

来自守护进程的错误响应:冲突:无法删除…(必须强制)- 图像在多个存储库中被引用

它在谈论哪些存储库?

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

阅读 360
1 个回答

如果没有 force 修饰符,您无法删除具有多个存储库的图像,请参阅 Docker 文档 了解更多信息。

 docker images
REPOSITORY                   TAG      IMAGE ID            CREATED           SIZE
repository/image-name        tag      a8e6fa672e89        10 days ago         344MB
repository2/image-name       tag      a8e6fa672e89        10 days ago         344MB

如果您想手动执行此操作,而不是使用图像 id 来删除图像,您必须使用图像名称删除不需要的存储库/标签:

 docker rmi a8e6fa672e89
Error response from daemon: conflict: unable to delete a8e6fa672e89 (must be forced) - image is referenced in multiple repositories

删除您不需要的存储库/标签:

 docker rmi repository/image-name:tag
Untagged: repository/image-name:tag
Untagged: repository/image-name:tag@sha256:64b5a02e2bb3ee4d4b7c0982e8e2e5eb68bdfd0fb096fce22b6c030dafb53a33

(重复最后一步,直到只剩下一个存储库/标签)现在您将能够删除图像:

 docker rmi a8e6fa672e89
Untagged: repository2/image-name:tag
Deleted: sha256:a8e6fa672e89b399bd3ac52b96c031e6816a69191d1fd7e6a1839fd643e3c751
Deleted: sha256:9861dd7b5783217515f571fdcfa6729e1e38af3ae9c971026e5a317b12fc5905

如果您使用 -f 标志并指定图像的短 ID 或长 ID,则 rmi 取消标记并删除与指定 ID 匹配的所有图像。

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

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