如何配置Docker运行的容器/应用程序列表?

时间:2016-03-16 16:50:25

标签: docker

什么是Docker的本机机制,用于指定Docker EngineDocker Compose应用程序列表(因此,通过compose.yml,容器)在给定主机上运行?

说明性场景

我希望给定的主机为Web应用程序运行所有必需的容器 A B 。假设 A B 都需要数据库实例,但不一定需要单独的实例。 A和B各有一个单独的Git存储库,其中定义了compose.yml,并且容器可用。

当前解决方案:使用撰写

创建指定此配置的compose.yml是可能的(并且相当简单)。实际上,很多Docker Compose的工具似乎都是为了支持这种情况而明确创建的。例如,我们可以指定:

  • app_a 一个应用程序容器,它连接到名为db的主机上的数据库。
  • app_b B 应用程序容器,它连接到名为db的主机上的数据库。
  • database容器与app_aapp_b db
  • 相关联
  • web运行Apache / Nginx / etc的容器。对相应的应用程序容器进行主机名级HTTP代理

这三个都有一个restart:always策略,以确保它们已启动,并使用操作系统的内置监控工具(docker等)监控systemd进程。

为什么这不是预期的解决方案?

尽管Docker Compose的工具集非常适合该任务,但Docker的文档还是讨论了每个应用程序 compose.yml配置。假设每个应用程序的compose.yml仅指定该应用程序所需的内容,指定每个应用程序必须启动其自己的数据库,前端Web服务器等似乎很不方便。

据推测,在每个主机只运行一个应用程序的情况下,这不是问题。

其他Docker工具

展望Docker Machine,它似乎是创建主机的工具,而不是每主机配置工具。同样,Docker Swarm看起来简化了在多个主机上运行的操作,而不是指定应该在主机上运行哪些应用程序。

当然,Docker可能会将问题考虑在其范围之外,并允许像 Chef Puppet 这样解决它。考虑到Docker Compose能够完美地描述和运行配置,这将是令人沮丧的。

在Docker中有没有更好的工具或机制?我误解了上述工具之一,它解决了这个问题吗? Docker是否认为这超出了范围?

0 个答案:

没有答案