gpt4 book ai didi

python - 带有/数据库的 Java Web 应用程序应该有多少个 docker 容器?

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:05 24 4
gpt4 key购买 nike

我正在尝试“dockerize”我的 java web 应用程序,并最终在 EC2 上运行 docker 镜像。

我的应用程序是一个 WAR 文件并连接到一个数据库。还有一个 python 脚本,应用程序通过 REST 调用它。 python端使用tornado webserver

问题 1:

我应该拥有以下 Docker 容器吗?

  1. 应用服务器容器 (Tomcat 7)
  2. HTTP 服务器的容器(httpd 的 nginx)
  3. postgres 数据库的容器
  4. python 脚本的容器(这将包含 tornado 网络服务器和我的 python 脚本)。

问题 2:

构建 dockerfile 的最佳方式是什么?对于需要将哪些命令放入每个容器的 dockerfile 中,我将不得不反复试验。我是否应该有一个 ubuntu 虚拟机,在上面进行反复试验,一旦我确定了我需要的命令,然后将它们放入该容器的 dockerfile 中?

最佳答案

该列表看起来是正确的。

将您的堆栈拆分为单独的容器的好处是您可以(在许多情况下)使用现成的官方图像,并且只需要提供正确的配置即可使它们协同工作。此外,您还可以单独升级组件(容器)。

请注意,禁止在单个容器中组合多个服务,但在 Docker 中,分离关注点是整体最佳实践,并且有一个单个容器仅负责单个任务/服务。

要让所有容器以正确的配置启动,docker-compose是不错的选择;它使您能够创建单个文件 (docker-compose.yml https://docs.docker.com/compose/compose-file/ )描述您的项目;为每个容器构建哪些图像,容器如何相互关联,并将配置传递给它们。

使用 docker-compose,你可以通过简单地运行来启动所有容器docker-compose up -d

关于python - 带有/数据库的 Java Web 应用程序应该有多少个 docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34884896/

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