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

时间:2015-03-14 10:04:22

标签: docker

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

图片1

  • FROM debian
  • 安装包(python,supervisor,git)
  • 安装节点
  • 安装socat
  • 安装redis_cli
  • Git clone app 1

图片2

  • FROM debian
  • 安装包(python,supervisor,git)
  • 安装节点
  • 安装redis_cli
  • Git clone app 2

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

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

1 个答案:

答案 0 :(得分:2)

答案是“它取决于”。如果您在构建Image 1时保留中间图像,则docker会在您构建Image 2时重复使用它们。

您可以通过创建2个图像并稍后运行命令docker history [image name]来测试它,您将看到中间层的哈希值相同。

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