2016-10-01 160 views
3

我不确定使用码头集装箱的最佳做法是什么。当我使用VM(比如说Ubuntu)来运行Web应用程序时,我安装了运行应用程序所需的所有软件,例如数据库,Web服务等,并像独立的操作系统一样使用。码头集装箱VS应用集装箱

但是,Docker可以以不同的方式使用。

鉴于我想运行一个Web应用程序的情况下,我有两个选项:

  1. 在一个容器上安装所有软件;安装数据库,Java以及运行所需的所有其他必需软件(即,就像我将如何使用VM一样使用)。

  2. 将每个应用程序安装在单独的容器上;一个容器中的数据库,另一个容器上的Web服务,并让他们相互交谈。

选项1)似乎更容易部署全堆叠的应用,但可能难以扩大,如果有包或OS的资源分配给各软件之间的一些相关性并发症的问题。

选项2)似乎很难部署,但每个容器都可以升级而没有太多的痛苦。

Docker用户的常见做法是什么?

编辑:回答这个也在https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container

回答

4

指出,最好的方法是使用一个单独的容器为每个服务(应用程序)。通过这种方式,您可以独立于其他容器升级/修改每项服务。 Docker对微服务体系结构非常有用。

使用Docker Compose只用一条命令即可运行所有容器:docker-compose up。在Docker Compose中,您可以定义容器之间的依赖关系。所以,他们会自动连接。

如果您想要在单独的Linux主机上运行每个容器,则可以使用Docker Swarm以便您不必关心网络连接。