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

刚开始玩Docker.要在tomcat上部署战争,似乎有两种方法:

>使用嵌入在图像中的java tomcat war创建映像
>使用java tomcat创建基本映像,然后将war“注入”基础映像(例如,通过主机卷装入)

方法1:

>需要为每个构建创建一个图像
>完全捆绑的解决方案
>由于图像尺寸较大,为每个版本维护一个图像并共享图像以进行下游部署可能会成为一个问题

方法2:

>在docker hub中保留基本映像
>在外部添加战争并运行
>更小的可分发大小(仅限战争),但部署团队需要“知道”要运行的映像名称的额外步骤

这些方法中的哪一种通常用于生产?

如果要将代码部署到Docker编排服务(如Google容器引擎,Amazon容器服务等),则选项1通常是唯一可行的解​​决方案,因为您无权访问主机.选项1在docker业务流程系统上也更具可扩展性,因为您可以在各种docker主机上创建多个服务实例.

但是,由于您提到的原因,我自己使用选项2,因为我使用云形成来管理通过自动扩展组进行扩展,这可以在本地存储中为我的战争提供实例.现在我不认为docker orchestration足够成熟,我可以替换我的外部编排系统,如果我有这些系统设置,那么没有必要失去方法2的好处.但是,当amazon允许我们直接连接ELB时docker容器并做了一些改进我会认真考虑.

Due to the large image sizes,maintaining one image for each build and sharing the image for downstream deployment could become an issue

FYI Docker使用基于差异的文件系统,因此只要您更改war文件,您的图像存储就不应该成为问题.

相关文章

文章浏览阅读8.8k次,点赞2次,收藏7次。本文介绍Docker Com...
文章浏览阅读1.5w次,点赞7次,收藏76次。原网提供的教程需要...
文章浏览阅读940次,点赞20次,收藏20次。通过 docker run 命...
文章浏览阅读1k次,点赞20次,收藏20次。Podman 是一个开源的...
文章浏览阅读2.1k次。请注意,这些命令需要在 Docker 主机上...
文章浏览阅读1.1k次,点赞37次,收藏40次。nacos搭建集群连接...