Docker rmi无法删除图片
所以,我的主机上有一些未加标签的图像。 我用
sudo docker rmi $(sudo docker images | grep "<none>" | awk '{print($3)}')
删除这些图像。 执行时,我得到错误
来自守护进程的错误响应:冲突,无法删除31fa814ba25a,因为容器70c20aa2c19f正在使用它,使用-f强制
所以我做了一个
sudo docker rmi 70c20aa2c19f
我得到的错误
来自守护进程的错误响应:没有这样的图像:70c20aa2c19f
所以如果ImageID 70c20aa2c19f没有图像,那么为什么最初的删除命令的错误指出存在一个ImageID为70c20aa2c19f的图像?
正如你对问题的评论所表明的那样,你已经发现你需要使用:
-
docker rmi
删除图像 -
docker rm
删除容器
多一点背景:有一个区别:
- docker的形象,
- 正在运行的容器基于该图像和
- 基于该图像的停止的容器
被停止的容器被保留,因为运行容器可能已经改变了容器中的文件系统,然后你可以提交这个停止的容器来获得一个新的图像。 (这是创build图像的一种方式,手动运行命令并提交产生的容器)。
使用docker build和Dockerfile创build图像,它执行Dockerfile命令的容器,并提交结果图像,只标记提交的最后一个图像。
下面的命令对我来说很好,只要继续为所有你想保留的容器添加grep -v 即可 :
sudo docker rm -f $(sudo docker ps -a -q | grep -v <good_container_1> | grep -v <good_container_2>)
该消息告诉一个容器正在使用图像,并且容器停止,但图像仍然与容器相连。 要删除图像,首先需要通过docker rm [Container-ID]
删除容器。 之后,通过docker rmi [Image-ID]
移除图像docker rmi [Image-ID]
首先,您需要删除属于泊坞窗图像的容器。 在你将删除Docker镜像之后。 我试过了,它的工作正常。