所以,我的主机上有一堆未标记的图像。我用
sudo docker rmi $(sudo docker images | grep "<none>" | awk '{print($3)}')
删除这些图像。在执行时,我得到错误
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 图像,
- 基于该图像的运行容器和
- 基于该图像的已停止容器
停止的容器被保留,因为运行容器可能已经改变了容器中的文件系统,然后您可以提交这个停止的容器以获得新的图像。 (这是创建图像、手动运行命令并提交生成的容器的一种方式)。
使用 docker build 和 Dockerfile 创建镜像,做同样的事情,它运行容器执行 Dockerfile 命令并提交生成的镜像,只标记最后提交的镜像。
关于Docker rmi 无法删除图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30047813/