当前位置: 首页 > 知识库问答 >
问题:

中间Docker映像是否占用磁盘空间?

张晨朗
2023-03-14

如果docker文件中有RUN命令,那么它会创建一些中间图像。我的问题是,这些中间图像是否占用硬盘的内存?如果是,docker build--rm应该足够了吗?

共有2个答案

张照
2023-03-14

RUN不创建中间图像,而是创建中间层/容器。

如果运行docker build--rm这些容器在生成后将被删除,因此可以节省磁盘空间,但每次重建同一映像时都需要更多时间,因为每次都会创建那些未缓存的层。

编辑(谢谢@Shashank V):默认情况下设置了--rm选项,所以有没有它没有区别。

蓬琦
2023-03-14

是的,中间层占用磁盘空间,这通常是一件好事。这有助于层的重用和快速构建。相反,您应该关注的是通过优化dockerfile来减少层的数量。最终的docker图像实际上是所有层的组合。因此,除非删除最终图像且没有其他图像正在使用层,否则无法删除层。

docker build--rm不会节省任何额外的磁盘空间。要了解原因,您应该知道docker build的工作原理-dockerfile中的每个指令(例如,RUN)都会启动一个新容器,在指令完成后,容器退出并提交到映像。

docker build--rm删除这些中间容器--rm选项默认为true,因此与docker build相比,docker build--rm没有额外的影响。出于某种原因,如果要保留中间容器,则可以使用--rm=False将其关闭。

如果有任何图层没有被任何其他图像使用,您可以删除它们。这些被称为悬挂层。您可以通过以下命令删除它们-

docker rmi$(docker图像-f"悬挂=true"-q)

 类似资料:
  • 问题内容: 我已经设置了泊坞窗,并且使用了完全不同的块设备来存储泊坞窗的系统数据: 请注意, 使用的是完全不同的硬盘 问题是,当我继续下载docker映像并运行docker容器时,似乎另一个硬盘驱动器 也用完了。 我可以通过删除一些Docker映像来验证此问题。在我删除了一些docker映像之后, 现在有了一些额外的空间。 我想念什么吗? 我的泊坞窗版本: 问题答案: 这是devicemapper

  • 我有一个docker正在运行,它会给我磁盘空间警告。如何增加docker空间并重新开始?(同一容器) 假设我想给15gb。

  • 问题内容: 我在VM上运行容器。我的容器默认将日志写入/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID- json.log文件,直到磁盘已满。 当前,我必须手动删除此文件,以避免磁盘已满。我读到在Docker 1.8中会有一个参数来旋转日志。您会建议什么作为当前解决方法? 问题答案: Docker 1.8已发布,带有日志轮换选项。新增: 当容

  • 我正在 VM 上运行容器。默认情况下,我的容器将日志写入 /var/lib/泊坞窗/容器/CONTAINER_ID/CONTAINER_ID-json.log 文件,直到磁盘已满。 目前,我必须手动删除这个文件,以避免磁盘已满。我听说Docker 1.8中会有一个参数来旋转日志。您建议当前的解决方法是什么?

  • 只显示7-9个图像。 显示n个图像。 当我创建一个文件时,由于系统完全错误而导致写入错误。我试图创建符号链接。但是我不能搬动码头工人的东西。 删除/var/lib/docker/graph下的所有内容好吗?除了创建符号链接和扩展磁盘之外,还有什么其他可能性?我宁愿删除不必要的东西。

  • 本文向大家介绍OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题,包括了OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题的使用技巧和注意事项,需要的朋友参考一下 OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题 背景:Ceilometer使用MongoDB作为数据库,不断进行采样,导致数据量膨胀,占用过多