gpt4 book ai didi

tomcat - Docker:Dockerize Tomcat 应用程序 - 最佳实践

转载 作者:行者123 更新时间:2023-11-28 21:59:37 24 4
gpt4 key购买 nike

我有一个当前在 tomcat 实例中运行的 java 应用程序。这个应用程序有 3-6 个(取决于用途)webapps。我想将此应用程序打包到 docker 容器中以设置新的测试系统基础架构。

做到这一点的最佳策略是什么?将每个 webapp 打包到一个基于 tomcat 的容器中,并用 docker-compose 绑定(bind)它(我更喜欢这样,但我不确定这是否可能?)或者有一个基于 tomcat 的容器,其中包含所有 webapp。

有没有人有这方面的经验?

最佳答案

这取决于您想要什么 - 对于您正在寻找的东西没有简单的答案。

我看到的选项是:

  • 一切都在一个容器中:当您构建镜像然后启动它时,您将所有 WAR 文件/目录复制到容器中。这意味着您只需担心启动/停止/重启的单个命令,但这也意味着所有应用程序共享相同的生命周期和相同的资源(CPU、JVM 堆、线程池等)。<
  • 另一种方法是运行 Docker Compose 之类的东西,每个应用程序都有一个单独的镜像,然后启动一个单独的容器。使用 Docker Compose,您可以将它们链接在一起,这样它们就可以相互看到,并且您可以根据需要启动/停止/重新启动/删除/重新创建它们。如果需要,您甚至可以走得更远,启动同一应用的多个实例 - 这不适用于其他方法。

如您所见,每种方法都有优点和缺点,这实际上取决于您想要什么。每个应用程序使用单个图像/容器的第二种方法更灵活,但需要更多配置,并且有更多的开销,因为您将运行 6 个 Tomcat 实例而不是一个。

就其值(value)而言,我将第二种方法用于我的用例。我有一个在所有应用程序之间共享的基本 Tomcat 镜像,它基于官方 Docker Tomcat 镜像,并添加了一些常见的东西。然后每个应用程序都有自己的图像和额外的配置,然后我使用 Docker Compose 将它们整合在一起。

如果您不关心增加的灵 active 并且您的所有应用程序将始终具有相同的生命周期,那么第一种方法也可能有效 - 这完全取决于您要做什么。

关于tomcat - Docker:Dockerize Tomcat 应用程序 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42897515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com