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

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

我的机器中有多个已停止的容器和图像。 我想清理并删除所有容器: docker ps -a什么也没有回报。 我运行docker rmi $(docker images -q)删除缓存的图像,但我得到:

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

它在谈论什么知识库?

macos docker docker-container docker-image
1个回答
13
投票

如果没有强制修改器,则无法删除具有多个存储库的图像,有关详细信息,请参阅Docker docs

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匹配的所有图像。

© www.soinside.com 2019 - 2024. All rights reserved.