在生产环境中使用 Compose

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

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

修改 Compose 文件以进行生产

您可能需要更改应用程序配置,使其做好准备 生产。这些更改可能包括:

  • 删除应用程序代码的任何卷绑定,以便代码保留在内部 容器,并且无法从外部更改
  • 绑定到主机上的不同端口
  • 以不同的方式设置环境变量,例如减少 日志记录,或指定外部服务(如电子邮件服务器)的设置
  • 指定重启策略(如restart: always避免停机
  • 添加额外的服务,例如日志聚合器

因此,请考虑定义一个额外的 Compose 文件,例如production.yml,它指定适合生产 配置。此配置文件只需包含您要对原始 Compose 文件进行的更改。附加的 Compose 文件 然后应用于原始compose.yml以创建新配置。

获得第二个配置文件后,您可以将其与-f选择:

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

有关更完整的示例和其他选项,请参阅使用多个编写文件

部署更改

更改应用代码时,请记得重新构建镜像,然后 重新创建应用的容器。要重新部署名为web用:

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

第一个命令会重新构建web然后停止、销毁和重新创建 只是web服务。这--no-deps标记会阻止 Compose 同时 重新创建任何服务web取决于。

在单个服务器上运行 Compose

您可以使用 Compose 将应用部署到远程 Docker 主机,方法是将DOCKER_HOST,DOCKER_TLS_VERIFYDOCKER_CERT_PATH环境变量 适当地。有关更多信息,请参阅预定义的环境变量

设置完环境变量后,所有正常的docker compose命令无需进一步配置即可工作。