首页 理论教育 使用DockerStack命令快速创建Swarm服务

使用DockerStack命令快速创建Swarm服务

时间:2023-11-06 理论教育 版权反馈
【摘要】:现在将使用代码库vfarcic/docker-flow-proxy中的docker-compose-stack.yml来创建docker-flow-proxy和docker-flow-swarm-listener服务。docker-compose-stack.yml文件的内容如下:格式是按照version 3编写的。它包含proxy和swarm-listener两项服务。你可以将该部分视为特定于Swarm的参数的占位符。这种情况下,我们指定代理服务要有两个副本,而swarm-listener服务应该被限定为manager角色。现在基于之前探讨的YAML文件创建stack:第一条命令从vfarcic/docker-flow-proxy代码库下载了Compose文件docker-compose-stack.yml。第二个命令创建了构成stack的服务。通过stack ps命令可以看到堆栈的任务:输出如下:现在正在运行代理的两个副本以及swarm-listener的一个副本。

使用DockerStack命令快速创建Swarm服务

我们将从创建一个网络开始。

给Windows用户的说明

你可能会遇到卷不能被正确映射的问题。如果你遇到了Invalid volume specification错误,请设置环境变量COMPOSE_CONVERT_WINDOWS_PATHS为0:export COMPOSE_CONVERT_WINDOWS_PATHS=0

请确保这个变量在你运行docker-compose或者docker stack deploy之前被设置。

代理网络将专门用于代理容器和连接到网络的服务。

现在将使用代码库vfarcic/docker-flow-proxy(https://github.com/vfarcic/ docker-flow-proxy)中的docker-compose-stack.yml(https://github.com/vfarcic/ docker-flow-proxy/blob/master/docker-compose-stack.yml)来创建docker-flow-proxy和docker-flow-swarm-listener服务。

docker-compose-stack.yml文件的内容如下:

格式是按照version 3(docker stack部署要求必须是这个版本)编写的。

它包含proxy和swarm-listener两项服务。既然你已经熟悉了代理,这里不再探讨每个参数的含义。(www.xing528.com)

与以前的Compose版本相比,大多数新参数都在deploy中定义。你可以将该部分视为特定于Swarm的参数的占位符。这种情况下,我们指定代理服务要有两个副本,而swarm-listener服务应该被限定为manager角色。为这两个服务定义的所有其他内容都使用与早期Compose版本相同的格式。

YAML文件的底部是服务中引用的网络列表。如果服务没有指定任何网络,则将自动创建默认网络。来自其他stack的服务要能够与代理进行通信,所以这里选择手动创建网络。我们手动创建一个网络并在YAML文件中将其定义为外部网络。

现在基于之前探讨的YAML文件创建stack:

第一条命令从vfarcic/docker-flow-proxy(https://github.com/vfarcic/docker-flow-proxy)代码库下载了Compose文件docker-compose-stack.yml(https://github.com/vfarcic/docker-flow-proxy/blob/master/docker-compose-stack.yml)。第二个命令创建了构成stack的服务。

通过stack ps命令可以看到堆栈的任务:

输出如下(为简洁起见,删除了ID):

现在正在运行代理的两个副本(在发生故障的情况下具有高可用性)以及swarm-listener的一个副本。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈