image has dependent child images 错误解决

在 Docker 中删除 image 时有时会遇到类似

Error response from daemon: conflict: unable to delete 6ec9a5a0fc9f (cannot be forced) - image has dependent child images

这样的错误,原因是有另外的 image FROM 了这个 image,可以使用下面的命令列出所有在指定 image 之后创建的 image 的父 image

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)

其中 xxxxxx 是报错 image 的 id,在文章开头的例子中就是 6ec9a5a0fc9f。从列表中查找到之后就可以核对并删除这些 image。

示例

1、查看我的镜像列表。

 
  1. root@localhost hbase-standalone]# docker images -a

  2. REPOSITORY TAG IMAGE ID CREATED SIZE

  3. hbase-standalone-ws v1 bbc8d4c92c1e 4 hours ago 2.29 GB

  4. <none> <none> 85fe3c0f93cd 4 hours ago 2.29 GB

  5. <none> <none> 8c21bee23d95 4 hours ago 1.75 GB

  6. <none> <none> c1238038e2fd 4 hours ago 1.48 GB

  7. <none> <none> fb7903a3a8d4 4 hours ago 1.48 GB

  8. <none> <none> f0d5d6e9b56f 4 hours ago 1.48 GB

  9. <none> <none> 67696fdef089 4 hours ago 1.48 GB

  10. <none> <none> 593b81400043 4 hours ago 1.48 GB

  11. wusong/hbase-hadoop-zoo v1 1c11ea55ee0e 6 days ago

2、删除none的镜像(删不掉)

 
  1. docker rmi 593b81400043

  2. Error response from daemon: conflict: unable to delete 593b81400043 (cannot be forced) - image has dependent child images

3、查找出所有在指定 image 之后创建的 image 的父 image,本示例看得出是同一个依赖镜像

 
  1. [root@localhost hbase-standalone]# docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=593b81400043)

  2. [hbase-standalone-ws:v1] sha256:bbc8d4c92c1e92f25b5b57e13a5a3eecfc370f34f143234c42f6bb0de6715d63 sha256:85fe3c0f93cd4438570fefd20d6ca4d9346ce5722e16a0c5ba7716816d6debcf

4、删除关联的依赖镜像,关联的none镜像也会被删除

 
  1. [root@localhost hbase-standalone]# docker rmi bbc8d

  2. Untagged: hbase-standalone-ws:v1

  3. Deleted: sha256:bbc8d4c92c1e92f25b5b57e13a5a3eecfc370f34f143234c42f6bb0de6715d63

  4. Deleted: sha256:554d97feb2cb895a7feddf14f225a36f0aed6e13183e169a3eef45c4e890f5f2

  5. Deleted: sha256:85fe3c0f93cd4438570fefd20d6ca4d9346ce5722e16a0c5ba7716816d6debcf

  6. Deleted: sha256:e5aa2d106cb63f9a817e4325c460080aa1ed88370487acd40c8d50171f565ced

  7. Deleted: sha256:8c21bee23d95b05aeaf9ff0c09606623f5616ffc4b9070733e9607cd9159119c

  8. Deleted: sha256:385a3888732b31a35d2fa518a27870c517b422196d2c2eb28434f380a880f068

  9. Deleted: sha256:c1238038e2fd51e55a5391f592a60d058ea36812cf9cb730af73a28a77c5db20

  10. Deleted: sha256:fb7903a3a8d498d3de1bb3e0b1cc0fcbfecbfd765488a48669f6b94b9540243d

  11. Deleted: sha256:f0d5d6e9b56f6844354fbdcbf24d1f9ec09d161173b5aca4ea6f748e9d55080a

  12. Deleted: sha256:67696fdef0891644da7c9bbcb9a2eef4eb60d55f8cf91923607b0d0b10bf0787

  13. Deleted: sha256:593b814000431dca14b23825f096098ea15b19458f3759562bdb81ce7710d4a1

5、再次查看镜像列表,相关镜像已经删除

 
  1. [root@localhost hbase-standalone]# docker images -a

  2. REPOSITORY TAG IMAGE ID CREATED SIZE

  3. wusong/hbase-hadoop-zoo v1 1c11ea55ee0e 6 days ago 2.62 GB

  4. docker latest 321f2cfcc343 2 weeks ago 152 MB

  5. python 2.7-slim 40792d8a2d6d 8 weeks ago

其他操作

 
  1. # 停止所有容器

  2. ➜ ~ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop

  3. # 删除所有容器

  4. ➜ ~ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm

  5. # 删除所有none容器

  6. ➜ ~ docker images|grep none|awk '{print $3 }'|xargs docker rmi

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值