无法删除docker镜像

时间:2018-01-26 18:30:42

标签: docker

在设置新的构建机器(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重新开始吗?

5 个答案:

答案 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] -fdocker rmi [IMAGE ID] --force

答案 3 :(得分:0)

您可以尝试选择您要删除的操作系统版本,例如:

docker image rm -f ubuntu:18.04

答案 4 :(得分:-2)

也许你可以使用 docker image rm -f