我在尝试
docker rmi c565603bc87f
错误:
来自守护程序的错误响应:冲突:无法删除c565603bc87f(无法强制) - 图像具有依赖子图像
因此,即使使用-f标志也无法删除图像 . 如何删除图像然后及其所有孩子?
Linux和docker版本:
uname -a 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
docker version客户端:版本:1.11.2 API版本:1.23 Go版本:go1.5.4 Git commit:b9f10c9内置:Wed Jun 1 22:00:43 2016 OS / Arch:linux / amd64
服务器:版本:1.11.2 API版本:1.23 Go版本:go1.5.4 Git commit:b9f10c9内置:Wed Jun 1 22:00:43 2016 OS / Arch:linux / amd64
15 回答
在删除图像之前,您应该尝试删除不需要的图像:
之后:
我也遇到了这个问题,我可以通过以下命令解决问题 . 这可能是原因,图像的容器正在运行或退出,因此在删除图像之前,您需要删除容器
docker ps -a -f status = exited:此命令显示所有已退出的容器,然后复制容器ID,然后运行以下命令以删除容器
docker rm #containerId:这个命令删除容器这可能是提到“图像有依赖子图像”的问题
然后尝试使用以下命令删除图像
docker rmi #ImageId
你可以这样做:
➜〜须藤泊坞窗RMI 4ed13257bb55 -f删除:SHA256:4ed13257bb5512b975b316ef482592482ca54018a7728ea1fc387e873a68c358删除:SHA256:4a478ca02e8d2336595dcbed9c4ce034cd15f01229733e7d93a83fbb3a9026d3删除:SHA256:96df41d1ce6065cf75d05873fb1f9ea9fed0ca86addcfcec7722200ed3484c69删除:SHA256:d95efe864c7096c38757b80fddad12819fffd68ac3cc73333ebffaa42385fded
假设我们有一个Dockerfile
我们从没有TAG或命名的构建图像
现在我们有一个成功报告“Successfully built 57ca5ce94d04”如果我们看到docker图像
我们需要先删除
docker rmi 57ca5ce94d04
其次是
通过该图像将被删除!
根据某人的建议强制删除所有人
基于Simon Brady的强力方法here,如果你没有大量的图像,你可以使用这个shell函数:
然后使用
recursive_remove_image <image-id>
调用它 .强制删除图像列表(例如,exclure版本10)
你有没有尝试过使用--force
以上代码运行就像魅力甚至doe我有同样的问题
在某些情况下(如我的情况),您可能正在尝试删除您没有意识到的图像 by specifying the image id that has multiple tags ,其中一些图像可能被其他图像使用 . 在这种情况下, you man not want to remove the image .
如果您有如此处所述的冗余标签,请在要删除的冗余标签上使用
docker rmi <image_id>
而不是docker rmi <repo:tag>
.使用以下内容查找在相关图像之后创建的所有图像的图像ID和父ID:
然后你调用命令:
“sub_image_id”是从属图像的ID
对我有用的是使用REPOSITORY:TAG组合而不是IMAGE ID .
当我尝试使用命令
docker rmi <IMAGE ID>
删除docker镜像而没有与此图像关联的容器时,我收到了以下消息:当我使用命令
docker rmi RPOSITORY:TAG
时,我可以成功删除我有这个问题,这里没有简短的答案,即使在@tudor上面提到的页面中也是如此 . 我想我会在这里分享我是如何摆脱这些图像的 . 我想到了依赖图像必须> =父图像的大小,这有助于识别它,以便我们可以删除它 .
我按大小顺序列出了图像,看看我是否能发现任何相关性:
这样做,是使用docker中的一些特殊格式来首先定位图像大小列,然后以相反的顺序运行人类可读的排序 . 然后我恢复易于阅读的列 .
然后我查看了
<none>
容器,并将列表中的第一个容器与相似的大小相匹配 . 我在该图像上执行了一个简单的docker rmi <image:tag>
,所有<none>
子图像都随之而来 .当我第一次开始使用docker时,所有子图像的问题图像实际上是该死的
myrepo/getstarted-lab
image I used . 这是因为我从第一个创建链的测试图像中创建了一个新图像 .希望在某些时候帮助别人 .
这是一个删除图像的脚本以及依赖它的所有图像 .
当我想在docker中删除名称为
"<none>"
的一些未使用的图像时我面对问题unable to delete a354bbc7c9b7 (cannot be forced) - image has dependent child images
.So来解决这个问题:你可以看到我有几个图像名称javaapp:最新和不同的容器名称 . 所以,我杀死并删除所有容器的“javaapp:latest”容器:
然后
所以我可以删除名称为
"<none>"
的所有图像祝好运
所有以前的答案都是正确的,但这里有一个解决方案,只是强行删除你的所有图像( use this command at your own risk it will delete all of your images )
这里的答案是找到所有后代的孩子,这里有一个答案:
docker how can I get the list of dependent child images?
然后使用它来按顺序删除子图像 .