Docker rmi 无法删除图像

Docker rmi unable to remove images

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

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

Error response from daemon: Conflict, cannot delete 31fa814ba25a because the container 70c20aa2c19f is using it, use -f to force

所以我做了一个

sudo docker rmi 70c20aa2c19f

我收到错误

Error response from daemon: No such image: 70c20aa2c19f

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

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

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

更多背景知识:两者之间存在差异:

  1. 一张docker图像,
  2. 基于该图像的 运行ning 容器和
  3. 基于该图像的停止容器

停止的容器被保留因为运行容器可能已经改变了容器中的文件系统,然后你可以提交这个停止的容器有一个新的图片。 (这是创建图像的一种方法,手动 运行 命令并提交生成的容器)。

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

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

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

首先你需要删除属于docker镜像的容器。 之后您将删除 Docker 图像。我试过了,没问题。

该消息告诉容器正在使用图像,容器已停止,但图像仍附加在容器上。要删除图像,首先需要通过 docker rm [Container-ID] 删除容器。在此之后,通过 docker rmi [Image-ID]

删除图像

对我不起作用。没有创建容器,但 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