我开始在Docker上工作,我得到了一些关于docker图像的问候。因为每次我创建新镜像时,我将从Docker rmi旧镜像,但即使在我运行命令> docker rmi 'IMAGE ID'之后,当我cd进入/var/lib/docker-registry/images目录时,它仍然显示许多镜像,如下所示:
drwxr-xr-x. 2 root root 60 May 14 13:22 65de4a13fc7cf28b4376e65efa31c5c3805e18da4eb01ad0c8b8801f4a10bc16
drwxr-xr-x. 2 root root 60 May 14 13:23 4970b995ce6435831c0e700f7c3ce6363235fbd15333af2dfb60a133ee8e9226
drwxr-xr-x. 2 root root 60 May 18 11:24 edaa232fba2214030847b7f6f57b1c05cf92a7c607332495bfab21738ceb61e1
drwxr-xr-x. 2 root root 60 May 18 16:16 09dab15bb87d1273fce7d786b2443a1d68a6cdcd397443fed4b7ac1bac298d30
drwxr-xr-x. 2 root root 60 May 18 17:20 8a622b1faf8c1df7a1f97e8fa4b841803160a800d04f6af539044f6f22ae9a38
drwxr-xr-x. 2 root root 60 May 19 14:15 b823d1a073894fdb70f7a8846f4d14eb8a2f2842f047a3d8ad847343d576c2e2
drwxr-xr-x. 2 root root 60 May 20 09:38 7c3c8e970803c9487f1f8884eb17603efb442a31b6f2082f3b26592311264e92
drwxr-xr-x. 2 root root 60 May 20 12:31 9d36120c6870e16ff7917b05bbbb84061c70e3135e40b8a10d58b1d6f50b23a3
.....但当我运行docker images命令时,它只显示:
root# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
Images1 latest f9a1d33ce592 14 hours ago 2.32 GB
Images2 latest 09dab15bb87d 9 days ago 877.2 MB所以我的问题是:如果我在这里出错了,因为当我每次运行docker rmi时,它不会删除/var/lib/docker-registry/images下的图像文件夹?
如果我可以手动删除/var/lib/docker-registry/images下的图像文件夹
一些附加信息:
我发现在/var/lib/docker-registry/repositories/library/目录下包含多个图像,其中大多数我已经使用>docker rmi删除了,但是当我cd到其中一个已删除的图像文件夹时,它包含了多个文件,如下所示:
[/var/lib/docker-registry/repositories/library/deleted-images1]
root# ls -latr
total 20
-rw-r--r--. 1 root root 159 May 27 17:39 taglatest_json
-rw-r--r--. 1 root root 64 May 27 17:39 tag_latest
-rw-r--r--. 1 root root 159 May 27 17:39 json
drwxr-xr-x. 2 root root 75 May 27 17:39 .
-rw-r--r--. 1 root root 304 May 27 17:39 _index_images
drwxr-xr-x. 14 root root 4096 May 28 10:15 ..和包含不同ids的_index_images文件,如下所示:
[{"id": "4970b995..."}, {"id": "65de4a13...."}, {"id": "f9a1d33...."}, {"id": "09dab15...."}]所以我想知道这是不是运行docker rmi时图像文件夹没有从/var/lib/docker-registry/images目录中删除的原因
从/var/lib/docker-registry/images和/var/lib/docker-registry/repositories/library文件夹中手动删除旧图像文件夹是否安全?
发布于 2015-05-28 21:07:20
构建镜像时,Dockerfile的每一行都会创建一个中间镜像或层,直到从该层构建的所有其他镜像也被删除后,才会删除该中间镜像或层。您可以使用docker images -a看到所有这些中间图像层,并且这些图像层应该与/var/lib/docker-registry/images的内容相同。(无论哪种方式,我都强烈建议不要手动删除此目录中的条目。)
发布于 2015-07-03 15:01:42
您可以尝试使用以下命令。它清除了大部分可见的部分,使您的docker图像列表太大
docker images -a | grep '<none>'| awk '{print $3}' | xargs --no-run-if-empty docker rmi发布于 2016-02-17 22:30:07
#!/bin/bash
echo "clean containers ..."
docker ps --filter status=exited -aq | xargs --no-run-if-empty docker rm -vf
echo "clean images ..."
docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi -fhttps://stackoverflow.com/questions/30505945
复制相似问题