一尘不染

我可以在Docker容器中运行多个程序吗?

docker

从部署旨在在台式机上的用户上运行的应用程序的角度来看,我正在努力将自己的头全放在Docker上。我的应用程序只是一个Flask
Web应用程序和mongo数据库。通常,我将同时安装在VM中,并将主机端口转发到来宾Web应用程序。我想尝试一下Docker,但不确定使用多个程序的含义。文档说只能有ENTRYPOINT,所以我怎么拥有Mongo和我的flask应用程序。还是需要将它们放在单独的容器中,在这种情况下,它们如何彼此通信,这如何使应用分发变得容易?


阅读 1936

收藏
2020-06-17

共1个答案

一尘不染

只能有一个ENTRYPOINT,但是该目标通常是一个脚本,该脚本启动所需的许多程序。您还可以使用例如Supervisord或类似工具来在单个容器内启动多个服务。这是一个在单个容器中运行mysql,apache和wordpress的docker容器的示例

假设您有一个供单个Web应用程序使用的数据库。然后,在单个容器中运行它们可能会更容易。

如果您拥有由多个应用程序使用的共享数据库,则最好在自己的容器中运行数据库,而每个应用程序都在各自的容器中运行。

当应用程序在不同的容器中运行时,它们至少有两种相互通信的可能性:

  1. 使用裸露的IP端口并通过它们进行连接。
  2. 最新的docker版本支持链接
2020-06-17