设置新的构建机器(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 ~]$
我什至尝试了nuke-from-orbit方法:
[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重新启动的东西吗?
rm -rf
设置此系统时,我最初安装了可从标准CentOS存储库(yum install centos)获得的旧版本的docker,而不是添加并安装了docker存储库docker- ce。即使我现在使用的是最新版本,旧版本也必须在/var/lib/docker升级之前引入了一些不良数据。最后,我只是删除了所有本地图像和容器数据,然后重新开始:
yum install centos
docker- ce
/var/lib/docker
sudo systemctl stop docker sudo rm -rf /var/lib/docker sudo systemctl start docker
现在一切正常。