docker图像中有图层的优点是什么?

假设我有两个不同的Docker文件。

  1. 图像一个叫做nudoc / my-base-image:1.1

    FROM ubuntu:16.10 COPY . /test.war 
  2. 图片二称为nudoc / my-testrun-image:1.1

      FROM acme/my-base-image:1.1 CMD /test/start.sh 

两者都有共同的层次。
在Docker镜像中使用图层有什么好处? 它从registry中获益吗?

正如亨利所说的那样

公共图层只下载一次,只存储一次。 所以这对下载和存储都有好处。

如果创build命令允许,另外构build一个图像将重用图层。 这减less了构build时间。 例如,如果将文件复制到图像中,并且该文件与上一次构build中的文件相同,则旧图层将被重用。 有关更多详细信息,请参阅编写dockerfiles的最佳做法 。

公共图层只下载一次,只存储一次。 所以这对下载和存储都有好处。

一个图层将被下载一次,并可能重新用于其他图像。 您可以将它们看作中间图像,并将这些中间图像组合在一起以创build更大的图像。 在持续集成中,这可以节省相当长的一段时间!

我build议你阅读官方文档页面: https : //docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/

Docker使用aufs文件系统作为默认,其中Dockerfile定义的每条指令将作为每个单独的层,如果您添加或更新指令,它将影响相应的层,因此它可以帮助您立即构build,重用或更新Docker映像,了解更多关于层和图像阅读这里