我在努力

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: b721d1cdaac7

 docker rmi b721d1cdaac7 -f

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

删除所有子映像

docker image rm $(docker images --filter since=b721d1cdaac7 -q) -f

其他回答

该命令删除所有图像(请谨慎使用)

你试过用武力吗

sudo docker rmi $(sudo docker images -aq) --force

这上面的代码运行就像一个魅力,即使我有同样的问题

# docker rm $(docker ps -aq)

之后,按照阮的建议使用命令。

在删除图像之前,您应该尝试删除不必要的图像:

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

之后,运行:

docker rmi c565603bc87f

在Simon Brady的蛮力方法的基础上,如果你没有大量的图像,你可以使用这个shell函数:

recursive_remove_image() {
  for image in $(docker images --quiet --filter "since=${1}")
  do
    if [ $(docker history --quiet ${image} | grep ${1}) ]
    then
      recursive_remove_image "${image}"
    fi
  done
  echo "Removing: ${1}"
  docker rmi -f ${1}
}

然后使用recursive_remove_image <image-id>调用它。

正在删除镜像id: b721d1cdaac7

 docker rmi b721d1cdaac7 -f

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

删除所有子映像

docker image rm $(docker images --filter since=b721d1cdaac7 -q) -f