docker工人如何处理几乎相同的图像?

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

图片1

  • 从debian
  • 安装软件包(python,supervisor,git)
  • 安装节点
  • 安装socat
  • 安装redis_cli
  • Git克隆应用程序1

图2

  • 从debian
  • 安装软件包(python,supervisor,git)
  • 安装节点
  • 安装redis_cli
  • Git克隆应用程序2

因此,您可以看到两个图像共享相同的基本映像,包,节点和redis_cli。

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

答案是“这取决于”。 如果在构buildImage 1时保留中间图像,Docker将在构buildImage 2时重用它们。

你可以通过创build2个图像然后运行命令docker history [image name]来testing这个,你会看到中间层的哈希值是相同的。

这个博客更详细地解释了这一点。