docker 如何处理几乎相等的图像?

How does docker handle almost equal images?

我有两个节点应用程序。每个应用程序都有自己的 docker 图像。

图片 1:

图 2:

所以你可以看到两个图像共享相同的基础图像、包、节点和 redis_cli。

如果我在同一台机器上创建这些图像的容器,docker 会重用图层还是仅在图像范围内而不是跨图像重用图层?

答案是"it depends"。如果在构建 Image 1 时保留中间图像,docker 将在构建 Image 2 时重用它们。

您可以通过创建 2 个图像然后 运行 命令 docker history [image name] 来测试这一点,您会发现中间层的哈希是相同的。

blog 对此进行了更详细的解释。