在设置新的构建机器(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重新开始吗?
答案 0 :(得分:1)
在设置此系统时,我最初安装了标准CentOS存储库(yum install centos
)中提供的旧版docker,而不是添加docker存储库并安装docker-ce
。即使我现在使用的是最新版本,旧的版本必须在我升级之前在/var/lib/docker
中引入了一些不良数据。最后,我刚刚删除了所有本地图像和容器数据,并重新开始:
sudo systemctl stop docker
sudo rm -rf /var/lib/docker
sudo systemctl start docker
现在一切正常。
答案 1 :(得分:1)
我遇到过类似的事情,当我使用rm -f时,它不起作用(无法删除)
docker rm -f <ImageId>
我重新启动了 Docker Engine 并使用了以下命令,它有效。
docker image prune -f -a
答案 2 :(得分:0)
你可以强制删除它
docker rmi [IMAGE ID] -f
或docker rmi [IMAGE ID] --force
答案 3 :(得分:0)
您可以尝试选择您要删除的操作系统版本,例如:
docker image rm -f ubuntu:18.04
答案 4 :(得分:-2)
也许你可以使用 docker image rm -f