在线文档教程
Docker 17
撰写 | Compose

Compose在产品中的使用 | Using Compose in production

在生产中使用 Compose

当您在开发中使用 Compose 定义应用程序时,可以使用此定义在不同的环境中运行应用程序,如 CI,分段和生产。

部署应用程序的最简单方法是在单个服务器上运行它,这与运行开发环境的方式类似。如果要扩展应用程序,可以在 Swarm 群集上运行 Compose 应用程序。

修改您的撰写文件进行生产

您几乎可以肯定地希望对适用于实时环境的应用配置进行更改。这些更改可能包括:

  • 删除应用程序代码的任何卷绑定,以便代码保留在容器内,不能从外部更改

  • 绑定到主机上的不同端口

  • 以不同的方式设置环境变量(例如,减少记录的详细程度或启用电子邮件发送)

  • 指定重启策略(例如,restart: always)以避免停​​机

  • 添加额外的服务(例如,日志聚合器)

出于这个原因,你可能会想要定义一个额外的 Compose 文件,比如说production.yml,它指定了适合生产的配置。此配置文件只需包含您想要从原始撰写文件中进行的更改。额外的撰写文件可以应用于原始文件docker-compose.yml以创建新配置。

一旦你有第二个配置文件,告诉 Compose 使用它的-f选项:

docker-compose -f docker-compose.yml -f production.yml up -d

有关更完整的示例,请参阅使用多个撰写文件。

部署更改

当您对应用程序代码进行更改时,您将需要重建图像并重新创建应用程序的容器。若要重新部署名为web,你会用:

$ docker-compose build web $ docker-compose up --no-deps -d web

这将首先重建图像web,然后停止,销毁,并重新创建web服务。--no-deps标志防止撰写也重新创建任何web依赖的服务。

在单台服务器上运行 Compose

您可以使用撰写通过设置来部署一个应用程序到远程主机的码头工人DOCKER_HOSTDOCKER_TLS_VERIFYDOCKER_CERT_PATH适当的环境变量。对于这样的任务,Docker Machine 使得管理本地和远程 Docker 主机变得非常简单,即使您不是远程部署,也是推荐的。

一旦你设置了你的环境变量,所有正常的docker-compose命令都可以在没有进一步配置的情况下工作。

在 Swarm 集群上运行 Compose

Docker Swarm 是一个 Docker 本地集群系统,它将相同的 API 公开为单个 Docker 主机,这意味着您可以将 Compose 用于 Swarm 实例并在多个主机上运行应用程序。

在集成指南中阅读有关 Compose / Swarm 集成的更多信息。

撰写文件

  • 安装组合

  • 命令行引用

  • 合成文件引用