【问题标题】:docker os container vs app containerdocker os 容器与应用程序容器
【发布时间】:2017-04-09 23:19:49
【问题描述】:

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

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

假设我想运行一个 Web 应用程序,我有两个选择:

  1. 在一个容器上安装所有软件;安装数据库、java 和所有其他运行所需的软件(即像我使用 VM 一样使用)。

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

选项 1) 似乎更容易部署全栈应用程序,但如果包之间存在一些依赖性复杂问题或将操作系统资源分配给每个软件,则可能更难扩展。

选项 2) 似乎更难部署,但每个容器都可以轻松升级。

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

编辑:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run-only-one-process-per-container 中也注明了对此的回答

【问题讨论】:

    标签: docker docker-container


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-11-16
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 2022-07-13
      • 2020-12-23
      相关资源
      最近更新 更多