为什么基础图像上有这么多层? Docker

Why so many layers on base images? Docker

我已经拉 ubuntu:14.04 并且在运行 docker images -tree 之后我看到了以下内容:

└─511136ea3c5a Virtual Size: 0 B
  └─3b363fd9d7da Virtual Size: 188.1 MB
    └─607c5d1cca71 Virtual Size: 188.3 MB
      └─f62feddc05dc Virtual Size: 188.3 MB
        └─8eaa4ff06b53 Virtual Size: 188.3 MB Tags: ubuntu:14.04.1, ubuntu:latest, ubuntu:trusty, ubuntu:14.04

这是什么?比如第一个。在我看来,除了最底层之外,所有层似乎都很奇怪。拜托,谁能解释一下为什么需要它们?

简短的回答是 Docker 用于构建图像的文件中的每条指令都有一个层。

您可以找到 Ubuntu 图片 here 的 Docker 文件。

FROM 行我们可以看到图像是基于 "scratch" 的,它代表您可以在输出顶部看到的空层。下面的每一行都会向图像添加一个新层。当您 运行 docker build 时,您可以看到 Docker 构建层并 运行 在上一层中添加新指令。