Can't remove image due to error: "Error response from daemon: reference does not exist"

Can't remove image due to error: "Error response from daemon: reference does not exist"

我在尝试清除 Docker 创建的图像时遇到了一个奇怪的问题。这就是我所做的:

然后这个错误:No such image: 2f21ea981017:latest出现了,我应该问,为什么?这样的图在哪里? Docker 有某种内部数据库存储信息吗?

在我 运行 所有之前的命令之后,我 运行 以下命令并注意输出:

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              14.04.5             b1719e1db756        3 days ago          187.9 MB

但后来我试图通过 运行ning

再次删除图像
$ docker rmi b1719e1db756
Error response from daemon: reference does not exist

我得到了同样的错误,我在这里遗漏了什么?我该如何解决这个问题?

我应该补充一点,我 运行 也有来自 this post 的命令,但没有成功。

经过一些研究和GithubDocker背后的人的大力帮助,我会自己回答。

总结: 首先我通过 运行 安装 docker 以下命令:

$sudo dnf install docker -y

从 RedHat fork 安装了 docker,因此版本是:1.10.3,然后使用这个版本我构建了直到现在才导致问题的图像。构建映像后,我删除 docker 1.10.3 版本并切换到 docker-engine 官方版本并安装 1.12.1.

问题: 我试图删除在 docker 1.10.3 下创建的图像,但使用 docker 1.12.1 从那里问题来自

解决方法:删除docker-engine并安装临时docker以删除在该版本下创建的图像。

  • 删除 docker-引擎:dnf remove docker-engine
  • 安装docker:dnf install docker
  • 删除图像:docker rmi -f $(docker images -q)
  • 删除 docker: dnf remove docker
  • 安装docker-引擎:dnf install docker-engine
  • 从头开始构建映像

注意: 由于某些原因,在我按照上面显示的每个步骤进行操作后,我 运行 进入以下问题:

$docker images
Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.22)

执行 dnf autoremove && dnf clean all 并重新启动 docker 解决问题。

如果你想要更多,请随时查看here

我在 docker-ce 17.06/fedora 26 上遇到过这个问题。我认为你不需要删除 docker,但是这些命令会删除你所有的图像。因此,请保存您真正需要的任何图像,删除所有图像,然后恢复您的备份;

sudo systemctl stop docker.service
sudo rm -rf /var/lib/docker
sudo systemctl start docker.service