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
删除容器
更多背景知识:两者之间存在差异:
- 一张docker图像,
- 基于该图像的 运行ning 容器和
- 基于该图像的停止容器
停止的容器被保留因为运行容器可能已经改变了容器中的文件系统,然后你可以提交这个停止的容器有一个新的图片。 (这是创建图像的一种方法,手动 运行 命令并提交生成的容器)。
使用 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
所以,我的主机上有一堆未标记的图像。我用
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
删除容器
更多背景知识:两者之间存在差异:
- 一张docker图像,
- 基于该图像的 运行ning 容器和
- 基于该图像的停止容器
停止的容器被保留因为运行容器可能已经改变了容器中的文件系统,然后你可以提交这个停止的容器有一个新的图片。 (这是创建图像的一种方法,手动 运行 命令并提交生成的容器)。
使用 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