Docker:每个服务有一个共享图像或单独的图像吗?

时间:2017-09-14 15:16:30

标签: performance docker memory-management docker-compose docker-image

我想弄清楚运行多个的最有效方式(内存和空间) 具有复杂依赖性的服务。

假设我们有一个包含3项服务的项目:

  • 服务S1仅使用库A和B
  • 服务S2仅使用库B和C
  • 服务S3仅使用库A和C

因此,如果您为每个图像创建一个单独的图像,您将最终得到这个结构:

  • S1
    • 高山层
    • A和B库
  • S2
    • 高山层
    • B和C库
  • S3
    • 高山层
    • A和C库

库层不共享任何文件(尽管实际上是共享库)。

分享资源的最佳策略是什么?是否可以为所有3项服务使用一个图像? (将库A,B,C存储在一个图像层中)

UPD
我们在一台机器上运行所有服务,而不是在集群上运行 更新2
这是一个example(扰子:不共享图层)

1 个答案:

答案 0 :(得分:0)

如果您遵循面向服务的面向架构,那么每个服务都应该有自己的映像。 Docker图像很便宜,但是如果你有一个庞大的图像并在所有服务中使用它,那就不太理想了。

此外,如果您想升级特定于服务的库,那么您将不会与其他服务有依赖关系。