Docker rmi无法删除图像

时间:2015-05-05 08:28:29

标签: docker

所以,我的主机上有一堆未标记的图像。我用

sudo docker rmi $(sudo docker images | grep "<none>" | awk '{print($3)}') 删除这些图像。执行时,我收到错误

  

来自守护程序的错误响应:冲突,无法删除31fa814ba25a   因为容器70c20aa2c19f正在使用它,所以使用-f来强制

所以我做了

sudo docker rmi 70c20aa2c19f

我得到了错误

  

来自守护程序的错误响应:没有这样的图像:70c20aa2c19f

因此,如果ImageID 70c20aa2c19f没有图像,那么为什么初始删除命令的错误表明存在ImageID 70c20aa2c19f的图像?

5 个答案:

答案 0 :(得分:6)

正如您对问题的评论所示,您已经发现需要使用:

  • docker rmi删除图片
  • docker rm删除容器

更多背景::

之间存在差异
  1. 码头图片,
  2. 基于该图像的正在运行的容器
  3. 基于该图像停止的容器
  4. 已停止的容器保留,因为运行容器可能已更改容器中的文件系统,然后您可以提交此已停止的容器以获取新映像。 (这是创建图像的一种方法,手动运行命令并提交生成的容器)。

    使用docker build和Dockerfile创建图像,做同样的事情,它运行执行Dockerfile命令的容器并提交生成的图像,只标记最后提交的图像。

答案 1 :(得分:1)

以下命令对我来说非常有用,只需为想要保留的所有容器添加grep -v

sudo docker rm -f $(sudo docker ps -a -q | grep -v <good_container_1> | grep -v <good_container_2>)

答案 2 :(得分:0)

该消息告诉容器正在使用该图像,并且容器已停止,但图像仍与容器相连。要删除图像,首先需要按docker rm [Container-ID]删除容器。在此之后,请按docker rmi [Image-ID]

删除图像

答案 3 :(得分:0)

对我不起作用。未创建容器,但 rmi 声称该映像不存在。

msoulier@deimos:~/work/mbgdocker$ docker images
REPOSITORY                   TAG              IMAGE ID       CREATED       SIZE
multiarch/qemu-user-static   register         ed40092460e6   4 weeks ago   1.26MB
multiarch/qemu-user-static   x86_64-aarch64   04f21107bea2   4 weeks ago   9.83MB
msoulier@deimos:~/work/mbgdocker$ docker rmi 04f21107bea2
Error: No such image: 04f21107bea2
msoulier@deimos:~/work/mbgdocker$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
ode here

答案 4 :(得分:-1)

首先您需要删除属于docker镜像的容器。 删除Docker镜像后。我试过,它的工作正常。