从部署旨在在台式机上的用户上运行的应用程序的角度来看,我正在努力将自己的头全放在Docker上。我的应用程序只是一个Flask Web应用程序和mongo数据库。通常,我将同时安装在VM中,并将主机端口转发到来宾Web应用程序。我想尝试一下Docker,但不确定使用多个程序的含义。文档说只能有ENTRYPOINT,所以我怎么拥有Mongo和我的flask应用程序。还是需要将它们放在单独的容器中,在这种情况下,它们如何彼此通信,这如何使应用分发变得容易?
只能有一个ENTRYPOINT,但是该目标通常是一个脚本,该脚本启动所需的许多程序。您还可以使用例如Supervisord或类似工具来在单个容器内启动多个服务。这是一个在单个容器中运行mysql,apache和wordpress的docker容器的示例。
假设您有一个供单个Web应用程序使用的数据库。然后,在单个容器中运行它们可能会更容易。
如果您拥有由多个应用程序使用的共享数据库,则最好在自己的容器中运行数据库,而每个应用程序都在各自的容器中运行。
当应用程序在不同的容器中运行时,它们至少有两种相互通信的可能性: