如何解决使用docker-compose从堆栈中复制单个服务?
我有点困惑,因为我习惯在单服务器环境中使用docker-compose。现在,我有了将Docker Swarm集群与docker-compose结合使用的想法(这是我所知道的),但是我对如何使其适应应用程序的需求感到困惑。例如:
我的应用由一个manager
应用和多个workers
组成。我的想法是让manager
应用程序在Docker Swarm管理器的服务器中运行(可能吗?),然后使用docker-compose通过Swarm集群的其余部分仅复制工作者节点。
一张小地图就像:
Server A -> manager
Server B -> worker1,worker2,worker3
Server C -> worker4,worker5
工作者通过environment
文件的docker-compose.yml
部分中定义的IP和端口连接到管理器。
我的问题是:如何在单个服务器上启动manager
仅 ,如何复制仅{strong> >在其他节点中,而每个群集节点都没有worker
? (因为我不需要/不需要)。预先感谢!
解决方法
您可以通过constraints
version: '3.8'
services:
manager:
hostname: 'manager'
image: traefik
deploy:
placement:
max_replicas_per_node: 1
constraints: [node.role == manager]
service:
image: service
deploy:
mode: replicated
replicas: 5
placement:
constraints: [node.role == worker]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。