所以,我的主机上有一堆未标记的图像。我用
sudo docker rmi $(sudo docker images | grep "<none>" | awk '{print($3)}')
删除这些图像。执行时,我收到错误
来自守护程序的错误响应:冲突,无法删除31fa814ba25a 因为容器70c20aa2c19f正在使用它,所以使用-f来强制
所以我做了
sudo docker rmi 70c20aa2c19f
我得到了错误
来自守护程序的错误响应:没有这样的图像:70c20aa2c19f
因此,如果ImageID 70c20aa2c19f没有图像,那么为什么初始删除命令的错误表明存在ImageID 70c20aa2c19f的图像?
答案 0 :(得分:6)
正如您对问题的评论所示,您已经发现需要使用:
docker rmi
删除图片docker rm
删除容器更多背景::
之间存在差异已停止的容器保留,因为运行容器可能已更改容器中的文件系统,然后您可以提交此已停止的容器以获取新映像。 (这是创建图像的一种方法,手动运行命令并提交生成的容器)。
使用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镜像后。我试过,它的工作正常。