我的机器中有多个已停止的容器和图像。
我想清理并删除所有容器:
docker ps -a
什么也没有回报。
我运行docker rmi $(docker images -q)
删除缓存的图像,但我得到:
来自守护程序的错误响应:冲突:无法删除...(必须强制) - 在多个存储库中引用映像
它在谈论什么知识库?
如果没有强制修改器,则无法删除具有多个存储库的图像,有关详细信息,请参阅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匹配的所有图像。