在开发中使用Compose定义应用程序时,可以使用此定义在不同的环境(例如CI,演示和生产)中运行应用程序。
部署应用程序最简单的方法是在单个服务器上运行它,类似于运行开发环境的方式。如果要扩展应用程序,则可以在Swarm群集上运行Compose应用程序。
在生产环境需要修改Compose配置
您可能需要更改您的应用程序配置,以使其可以投入生产。这些更改可能包括:
删除应用程序代码的所有卷绑定,以使代码保留在容器内,并且不能从外部进行更改
绑定到主机上的不同端口
设置环境变量的方式有所不同,例如减少日志记录的冗长程度,或为外部服务(例如电子邮件服务器)指定设置
指定重启策略,如restart: always避免停机
添加额外的服务,例如日志聚合器
因此,请考虑定义一个附加的Compose文件,例如production.yml,该文件 指定了适合生产的配置。该配置文件仅需要包含您想要对原始Compose文件进行的更改。可以将其他Compose文件应用于原始文件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标志阻止Compose也重新创建任何web依赖的服务。
在单个服务器上运行
您可以通过适当设置,和环境变量DOCKER_HOST,使用Compose将应用程序部署到远程Docker主机 。DOCKER_TLS_VERIFYDOCKER_CERT_PATH
设置环境变量后,所有常规docker-compose 命令都无需进一步配置即可使用。