当前,当我们更新Docker Swarm服务时,我们仅在每个环境中运行相关命令。因此,例如,如果我们需要将装载添加到外部文件夹,则只需在测试和生产中运行“ docker service --mount-add ...”。
但是,这似乎与以代码为基础的基础架构想法不一致。当前,很难重现任何正在运行的Docker Service,并且我们依靠文档来了解如何配置这些服务。
Docker Swarm中是否有可用的东西来避免此问题?因此,我想在配置文件中指定我的服务配置,并让Docker Swarm根据此配置文件更新配置。因此,在每种环境中使用相同的“ config”文件时,我确定它们都是相同的,并且该文件成为文档。
答案 0 :(得分:2)
您应该使用Docker Compose files声明群集服务,然后将它们部署到群集中。例如,这是一个简单的Compose文件,该文件将nginx图像作为名为nginx的服务运行
version: '3.6'
services:
nginx:
image: nginx:stable-alpine
ports:
- 80:80
然后,您使用docker stack deploy将该Compose文件以及其中定义的所有服务和其他资源作为堆栈进行部署。
docker stack deploy --compose-file the-compose-file.yml demo
当您有服务的更新时,请更改Compose文件,然后使用相同的堆栈名称空间(在上例中为demo
)再次部署它。 Docker将更新以前部署的服务。
答案 1 :(得分:1)
docker-compose版本3是Docker Swarm的配置文件。
采取look。