在生产环境中使用 Compose

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

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

修改 Compose 文件以进行生产

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

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

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

一旦你有了第二个配置文件,你可以用它来使用这个选项:-f

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

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

部署更改

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

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

第一个命令为 重建镜像,然后停止、销毁和重新创建 只是服务。该标志会阻止 Compose 同时 重新创建任何服务,这取决于。webweb--no-depsweb

在单个服务器上运行 Compose

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

设置完环境变量后,所有常规命令都无需进一步配置即可使用。docker compose