中间Docker镜像会占用磁盘空间吗?

Nis*_*t M 2 docker dockerfile

如果 docker 文件中有 RUN 命令,那么它确实会创建一些中间映像。我的问题是这样的中间图像是否占用了您的硬盘驱动器的任何内存?如果是的话,docker build --rm应该够了吧?

Sha*_*k V 5

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

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

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

如果有任何其他图像未使用的图层,您可以将其删除。这些称为dangling层。您可以使用以下命令删除它们 -

docker rmi $(docker images -f "dangling=true" -q)