好的,所以我是Docker的新手,并且正在做一些教程,我想删除nginx
和mongo
图像:
$ 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
是什么?是图像名称还是其他名称?mongo
删除docker image rm mongo
图像?docker image ls
显示它而不是图像名称?docker image rm mongodb
和docker image rm mongo-db
,但都没有成功。答案 0 :(得分:2)
图像实例称为容器。您有一张图像,该图像是您描述的一组图层。如果启动此映像,则该映像具有正在运行的容器。您可以有多个运行中的同一图像容器。 您可以看到带有docker映像的所有映像,而可以看到带有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
答案 1 :(得分:0)
泊坞窗中映像的“名称”是存储库和ID的组合-这就是docker image ls
中显示的内容。
您还将在docker hub上找到存储库名称,例如:https://hub.docker.com/_/mongo/
如果仅提供存储库的名称-在这种情况下为“ mongo”,则docker假设您要删除为此存储库标记为“最新”的映像。 现在,由于在您的示例中,只有一个标记为“ mongo:3.4”的图像,但是没有一个名为“ mongo:latest”的图像,所以此方法不起作用。
您可以通过添加-f
标志来强制从一个存储库中删除所有图像,例如docker -f rmi mongo
。
有关更多信息和示例,请参见官方文档:https://docs.docker.com/engine/reference/commandline/rmi/#parent-command
答案 2 :(得分:0)
如果您使用代理,请尝试
$ docker image rm your-proxy:port/image-name
或
$ docker image rm -f your-proxy:port/image-name