Docker镜像无法删除, "no such image"

标签 docker

好的,我是 Docker 新手,正在学习一些教程,我想删除 nginxmongo 镜像:

$ docker image ls
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
nginx                latest              be1f31be9a87        12 days ago         109MB
mongo                3.4                 598e8cf490a6        12 days ago         361MB

所以我从 nginx 开始:

$ docker image rm nginx
Untagged: nginx:latest
Untagged: nginx@sha256:9ad0746d8f2ea6df3a17ba89eca40b48c47066dfab55a75e08e2b70fc80d929e
Deleted: sha256:be1f31be9a87cc4b8668e6f0fee4efd2b43e5d4f7734c75ac49432175aaa6ef9
Deleted: sha256:7609c40a03b852382a43d79231d9d4ca7661cd1ac9edcb46f78a44fff4ed59ca
Deleted: sha256:a2b6968c4326640dd5e9e22ddf6cebb61ba1a4b79a4ac8d194f93000c5a4c3e2
Deleted: sha256:8b15606a9e3e430cb7ba739fde2fbb3734a19f8a59a825ffa877f9be49059817

消失了吗?

$ docker image ls
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
mongo                3.4                 598e8cf490a6        12 days ago         361MB

到目前为止一切顺利。现在对于mongo:

$ docker image rm mongo
Error: No such image: mongo

为什么这不起作用?

最后我发现docker image rm 598e8cf490a6确实删除了mongo镜像,但我仍然不明白为什么这不起作用。

  • 第一列是什么,REPOSITORY?这是图像名称还是其他什么?
  • 如果是镜像名称,为什么我不能使用 docker image rm mongo 删除 mongo 镜像?
  • 如果不是图像名称,则
    1. 这是什么?
    2. 为什么 docker image ls 显示它而不是镜像名称?
    3. 如何获取实际的图像名称?具体是什么?我还尝试了 docker image rm mongodb 和 docker image rm mongo-db 但没有成功。

最佳答案

As explained in the following thread - https://stackoverflow.com/a/23736802/10488199

图像的实例称为容器。您有一个图像,正如您所描述的,它是一组图层。如果启动此镜像,则您将拥有此镜像的正在运行的容器。您可以拥有多个正在运行的同一镜像的容器。 您可以使用 docker images 查看所有镜像,而可以使用 docker ps 查看正在运行的容器(并且可以使用 docker ps -a 查看所有容器)。 因此,镜像的运行实例就是一个容器。

查看正在运行的容器实例列表

使用 -> $ docker ps

查看所有容器实例的列表

使用 -> $ docker ps -a

查看已拉取的图像列表

使用 -> $ docker images

删除容器实例(如果容器正在运行)

使用 -> $ docker kill <container id/container name> 使用 -> $ docker rm <container id/container name>

或强制其停止并通过以下方式将其删除

使用 -> $ docker rm -f <container id/container name>

删除容器实例(如果容器未运行)

使用 -> $ docker rm <container id/container name>

删除图像

使用 -> $ docker rmi <REPOSITORY:tag/IMAGEID>

使用 -> $ docker image rm <REPOSITORY:tag/IMAGEID>

注意:如果要删除的存储库具有最新标签,则无需提及。如果有标签,应该提及。

就你的情况

使用 -> $ docker images rm mongo:3.4

关于Docker镜像无法删除, "no such image",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52815486/

相关文章:

docker - gitlab docker 登录失败 : certificate signed by unknown authority

docker - iframe中的Docker应用

docker - 试图了解 Kubernetes 工作节点和 Pod 与 Docker 的比较 "Service"

docker - 如何将 RBAC 权限分配给系统 :anonymous service account in Kubernetes?

ubuntu - 我可以使用 docker 在当前系统上提供简单的文件覆盖吗?

docker - 是否可以从yocto生成的镜像创建docker镜像?

docker - 图像已成功构建,但未显示在 "docker images"结果中

C++ 与 Crow、CMake 和 Docker

docker - 使用 Dockerfile 中的唯一 COPY 语句将一些文件和整个文件夹从主机复制到容器中?

asp.net-mvc - 如何在 ASP.net MVC 项目中更改代码后更新 docker 容器?