问题
在 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。
其他操作
# 停止所有容器
➜ ~ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
# 删除所有容器
➜ ~ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
# 删除所有none容器
➜ ~ docker images|grep none|awk '{print $3 }'|xargs docker rmi
参考:
- https://blog.csdn.net/renzhewudi77/article/details/82858280