docker os container vs app container

时间:2016-10-01 23:59:05

标签: docker docker-container

我不确定使用docker容器的最佳做法是什么。当我使用VM(比如ubuntu)运行Web应用程序时,我会安装运行应用程序所需的每个软件,如数据库,Web服务等,并像独立的操作系统一样使用。

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

鉴于我想运行Web应用程序的场景,我有两个选择:

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

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

  3. 选项1)似乎更容易部署完整堆栈的应用程序,但如果包之间存在一些依赖性复杂问题或为每个软件分配OS资源,则可能难以扩展。

    选项2)似乎更难部署,但每个容器都可以升级而不会太痛苦。

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

    编辑:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container

    中也提到了对此的回答

1 个答案:

答案 0 :(得分:4)

最好的方法是为每个服务(应用程序)使用单独的容器。通过这种方式,您可以独立于其他容器升级/修改每个服务。 Docker非常适合微服务架构。

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

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