我在努力

docker rmi c565603bc87f

错误:

来自守护进程的错误响应:冲突:无法删除c565603bc87f (不能强制)- image有依赖的子映像

所以我不能用-f标记删除image。如何删除图像,然后所有的孩子?

Linux和docker版本:

uname - Linux goracio-pc 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

码头工人版本 客户: 版本:1.11.2 API版本:1.23 Go版本:go1.5.4 Git提交:b9f10c9 建成:2016年6月1日星期三22:00:43 OS /拱:linux / amd64

服务器: 版本:1.11.2 API版本:1.23 Go版本:go1.5.4 Git提交:b9f10c9 建成:2016年6月1日星期三22:00:43 OS /拱:linux / amd64


当前回答

在某些情况下(比如我的例子),您可能试图通过指定具有多个您没有意识到存在的标记的图像id来删除图像,其中一些可能被其他图像使用。在这种情况下,您可能不想删除图像。

如果你有一个冗余标签的情况,如这里所述,而不是docker rmi <image_id>使用docker rmi <repo:标签>在你希望删除的冗余标签上。

其他回答

我也有这个问题,我可以解决以下命令的问题。这可能是由于,图像的容器正在运行或退出,所以在删除图像之前,您需要删除容器

docker ps -a -f status=exited:该命令显示所有退出的容器,因此复制container Id,然后运行以下命令删除container

这个命令删除容器,这可能是提到“镜像有依赖的子图像”的问题。

然后尝试用下面的命令删除图像

码头工人 RMI #ImageId

如果你想取消Docker图像的标签

docker rmi <rep:tag>

如果你想删除Docker镜像

docker image rm <image_id>

例如:输入docker image ls来显示图像的信息

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
python              3.6            60f85556d5d2        4 days ago          174MB

Docker rmi python:3.6

Docker镜像rm 60f85556d5d2

请运行docker命令

Docker image rm -f $(Docker image ls——filter悬挂=true -q)

然后运行

Docker镜像rm -f $(Docker镜像ls -a -q)

在工作了几个小时后,我发现上面的命令非常有用。

否则,您可以运行剪枝脚本。 https://gist.github.com/sethbergman/cb0f1f700b1f6474b9738191055c9fb7

前面所有的答案都是正确的,但这里有一个解决方案,就是强行删除所有的图像(使用这个命令,风险自负,它将删除所有的图像)

docker rmi $(docker images -q) -f

正如这里所解释的,我使用以下方法来识别依赖图像并删除它们,

image_id=123456789012

docker images -a -q --filter since=$image_id |
xargs docker inspect --format='{{.Id}} {{.Parent}}'

你会看到类似这样的输出:

sha256:f7ef19862215ec0bf7a6b103504d213e1c001691703808f4154689cfbb5f14f9 sha256:a7d2efad2847bd10e5223980ed80f5781c716eddbf6131a3cf97614e7f2db97f
sha256:03690ae141346203959d0ae1b3e8d34b7a4232095d774af57dda6282fce99cc4 sha256:5713074659bb5352496ea680a903eba2f66e0495538c9db37336f4ba92994ea8
sha256:311f587811942d328edc52e5953d794eb9b81fe392512080d9fc1d350a6b2024 sha256:aa674f7f2621946db257720c378377b8714739d20879542d875b84c53b59bc75

然后你可以逐个删除这些图片,如下所示:

docker image rm f7ef19862215ec0bf7a6b103504d213e1c001691703808f4154689cfbb5f14f9

输出类似如下所示的内容:

Untagged: prathap/cognitive_robotics_gpu:v1
Untagged: prathap/cognitive_robotics_gpu@sha256:db6e7543a13e9a96241c985b9b3145b8fd65effb68c183301385b495875f1a5a
Deleted: sha256:03690ae141346203959d0ae1b3e8d34b7a4232095d774af57dda6282fce99cc4
Deleted: sha256:263f655670436758f8e3f23f31170083fc8d60c4eebe01a5b3fda1e73bed3ad1