首页 > 编程知识 正文

docker保存镜像,docker制作镜像

时间:2023-05-04 08:41:52 阅读:159485 作者:4359

背景偶然发现服务器上有很多镜像占用了很多空间,想打扫。

直接删除结果错误:

docker RMI 8f 5116 CBC 201 errorresponsefromdaemon : conflict 3360 unabletodelete 8f 5116 CBC 201 (cannotbeforced )-imagehasdepependendendedended

而且互联网的需求方式,主流的方法有两种

方法1 :强制删除镜像

docker RMI-f8f 5116 CBC 201 errorresponsefromdaemon : conflict : unabletodelete 8f 5116 CBC 201 (cannotbeforced )-imagehasdepepeped

以失败告终。 请参阅。 请参阅。

方法2 )批量删除容器并删除镜像#所有容器文档生成器PS-a|grep ' exited '|awk ' { print $1} '|xargsdockerstop #所有容器文档生成器PS-a 删除所有none镜像docker images ' {打印$3} '|xargsdockerrmi仍以失败告终。 请参阅。 请参阅。 请参阅。 请参阅。

原因

经过长时间搜索,发现是TAG的问题造成的。 也就是说,其他image FROM创建了这个image。 可以使用以下命令列出指定image后创建的所有image的父image

http://www.Sina.com/http://www.Sina.com /

方案# XXX指向镜像ID

先查询依赖

docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=XXX)

然后根据根据TAG删除容器

docker rm REPOSITORY:TAGdocker none镜像

有效的none镜像

Docker文件系统配置。 Docker镜像由许多层组成,每个层之间存在父子关系。 默认情况下,所有Docker文件系统层都存储在/var/lib/Docker/graph目录中,Docker称为层数据库。

最后总结的none: none镜像是中间镜像。 尝试使用文档图像- a。 他们不会引起硬盘可用空间的问题(因为这是镜像的父层,所以必须存在),但他们会犹豫不决。

无效的none镜像

另一种类型的none: none镜像是dangling images,该类型会导致磁盘空间占用问题。

像Java和Golang这样的编程语言有内存区域,代码与此内存区域没有关联。 由于这些语言的垃圾回收优先回收该区域的空间,并返回堆存储器,因此该存储器区域对于之后的存储器分配是有用的

docker的悬挂文件系统与上述原理相似,但他没有被使用,也没有与镜像相关联。 因此,需要一种清理这些漂浮的镜子的机制。

我们已经提到了有效的none镜像。 他们是中层。 无效的none镜像如何出现? 这些dangling镜像主要是通过触发docker build和docker pull命令生成的。

可以使用以下命令进行清理

文档RMI $ (文档图像- f“dangling=true”- q ) )

docker没有自动垃圾回收处理机制,将来这一点可能会得到改善,但目前只能这样手动进行清理。

转载于:https://www.cn blogs.com/111 testing/p/11208086.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。