在设置一个新的构建机器(CentOS 7,Docker CE 17.12.0-ce)时,我进行了一个简单的测试:
docker run -it --rm ubuntu bash
之前一切正常,但现在我无法删除Ubuntu镜像。
[build ~]$ docker image rm ubuntu
Error: No such image: ubuntu
[build ~]$ docker image rm ubuntu:latest
Error: No such image: ubuntu:latest
[build ~]$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 0458a4468cbc 24 hours ago 112MB
[build ~]$ docker rmi 0458a4468cbc
Error: No such image: 0458a4468cbc
它并未被任何容器使用(不过这也不是错误的原因):
[build ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[build ~]$
我甚至尝试了“轰炸策略”:
[build ~]$ docker rmi $(docker images -q)
Error: No such image: 0458a4468cbc
重新启动Docker守护进程:
[build ~]$ sudo systemctl restart docker
[build ~]$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 0458a4468cbc 24 hours ago 112MB
[build ~]$ docker rmi 0458a4468cbc
Error: No such image: 0458a4468cbc
怎么了?虽然Ubuntu镜像存在并不是很重要,但我不明白为什么我不能把它清除。
更新
我尝试重新拉取这个镜像,结果:
docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:e27e9d7f7f28d67aa9e2d7540bdc2b33254b452ee8e60f388875e5b7d9b2b696
Status: Downloaded newer image for ubuntu:latest
[build ~]$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 0458a4468cbc 25 hours ago 112MB
ubuntu latest 0458a4468cbc 25 hours ago 112MB
[build ~]$ docker image rm ubuntu
Untagged: ubuntu:latest
[build ~]$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 0458a4468cbc 25 hours ago 112MB
[build ~]$
更新2
在全新安装的CentOS 7 1708上尝试了相同的基本步骤,没有遇到任何问题,因此可以肯定这只是这台机器上某些东西的奇怪一次性损坏。
问题仍然是,我该如何清理它?文件系统中是否有什么我可以直接rm -rf
并让docker重新开始?
docker images
而不是docker image ls
吗?虽然我认为两者并没有什么区别。 - fahadashdocker info -f '{{ .Driver }}'
你尝试过重新拉取ubuntu镜像吗? - BMitchdevicemapper
。运行docker images
显示的与docker image ls
相同。 - superstatoroverlay2
,但出现了相同的问题。 - OrangeDog