我的机器中有多个停止的容器和图像。
我想清理并移除所有容器:
docker ps -a
不返回任何内容。
我运行docker rmi $(docker images -q)
删除缓存的图像,但得到:
守护程序的错误响应:冲突:无法删除... (必须强制使用)-在多个存储库中引用了图像
它在说什么仓库?
答案 0 :(得分:5)
如果没有force修改器,则无法删除具有多个存储库的图像,有关更多信息,请参阅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匹配的图像。
答案 1 :(得分:5)
它所谈论的“存储库”是docker images
第一栏中的一部分:
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
(我接受加百列在回答中显示的样本)
在这里,我们有两个存储库:“ repository”和“ repository2”。如您所见,这两个图像具有相同的IMAGE ID。
docker images -q
列出了所有可用的IMAGE ID。因此,如果要删除由两个图像引用的IMAGE ID,则会得到您提到的错误。
解决方案:您可以按图像名称而不是其ID删除图像:
docker rmi repository/image-name:tag
答案 2 :(得分:1)
如果确定要删除所有图像,则可以使用以下命令:
docker images | awk '{print $1":"$2}' | egrep -E 'REPOSITORY|TAG' | xargs -n1 docker rmi
答案 3 :(得分:1)
您可以清理所有容器。首先,您需要使用docker stop $(docker ps -aq)
停止所有容器。最后,使用以下命令删除所有容器:docker rm $(docker ps -aq)
。您可以在一个命令docker rm $(docker stop $(docker ps -aq))
中完成所有操作。
如果要删除所有容器数据:
docker container prune
docker network prune
docker system prune
docker volume prune
docker builder prune
答案 4 :(得分:1)
删除单个记录:sudo docker rmi -f
删除所有图片:
须藤泊坞窗 rmi -f $(须藤泊坞窗图像 -a -q)
“-f”参数很重要
答案 5 :(得分:1)
要强制删除一个 Docker 镜像,它指的是多个存储库,只需使用以下命令:
sudo docker rmi -f image_id
答案 6 :(得分:0)
来自守护进程的错误响应:冲突:无法删除 3472c3b5350b(必须强制) - 图像在多个存储库中被引用 来自守护进程的错误响应:冲突:无法删除 3472c3b5350b(必须强制) - 图像在多个存储库中被引用
如果出现此错误,请先取消标记图像,然后将其删除。
这可以通过使用以下命令来完成。
码头工人 rmi :
答案 7 :(得分:-1)
0, 1