Docker:哪种方法更好? WAR嵌入在图像或基础图像+战争?

刚开始玩Docker。 在tomcat上部署一场战争似乎有两种方法:

  • 用图像中嵌入的java + tomcat + war创建图像
  • 用java + tomcat创建一个基础映像,然后将战争“注入”基本映像(例如,通过主机卷装载)
  • 方法1:

  • 需要为每个构建创建一个图像
  • 完全捆绑的解决方案
  • 由于图像尺寸较大,为每个构建维护一个图像并共享下游部署的图像可能成为一个问题
  • 方法2:

  • 在码头集线器中保留一个基础镜像
  • 外部添加战争并运行
  • 较小的可分配大小(仅限战争),但是部署团队需要“知道”要运行的映像名称的额外步骤
  • 以下哪种方法通常用于生产?


    如果您想将代码部署到Docker业务流程服务(例如Google Container Engine,Amazon Container Service等)上,那么选项1通常是唯一可行的解​​决方案,因为您无权访问主机。 在Docker业务流程系统中,选项1也更具可扩展性,因为您可以在各种码头主机上创建多个业务实例。

    但是,我自己使用选项2的原因是你提到的,因为我通过使用云形成来管理自动扩展组的扩展,可以在本地商店中为我的战争提供实例。 现在我不认为码头管理已经足够成熟,可以替换我的外部业务流程系统,如果我有这些系统设置,那么没有任何意义可以放弃方法2的好处。但是,当amazon允许我们直接连接ELB码头集装箱,并进行了一些改进,我将认真重新考虑。

    由于图像尺寸较大,为每个构建维护一个图像并共享下游部署的图像可能成为一个问题

    FYI Docker使用基于diff的文件系统,只要您只是更改war文件,图像存储不应该成为问题。

    链接地址: http://www.djcxy.com/p/24085.html

    上一篇: Docker: Which approach is better? WAR embedded in image or base image + war?

    下一篇: AppRTC server returns html instead of Json