使用docker compose从堆栈复制单个服务?
我有点困惑,因为我习惯于在单服务器环境中使用docker compose。现在我有了使用Docker Swarm集群和Docker compose的想法(这是我更了解的),但我有点困惑如何让它符合我的应用程序的需要。例如: 我的应用程序由一个使用docker compose从堆栈复制单个服务?,docker,docker-compose,docker-swarm,Docker,Docker Compose,Docker Swarm,我有点困惑,因为我习惯于在单服务器环境中使用docker compose。现在我有了使用Docker Swarm集群和Docker compose的想法(这是我更了解的),但我有点困惑如何让它符合我的应用程序的需要。例如: 我的应用程序由一个经理应用程序和多个工作者组成。我的想法是让manager应用程序在Docker Swarm manager的服务器上运行(可能吗?),然后使用Docker compose仅通过其余Swarm群集节点复制工人 小地图应该是这样的: Server A ->
经理
应用程序和多个工作者
组成。我的想法是让manager
应用程序在Docker Swarm manager的服务器上运行(可能吗?),然后使用Docker compose仅通过其余Swarm群集节点复制工人
小地图应该是这样的:
Server A -> manager
Server B -> worker1, worker2, worker3
Server C -> worker4, worker5
工人通过docker compose.yml
文件中environment
部分中定义的IP和端口连接到管理器
我的问题是:如何仅在一台服务器上启动
manager
,以及如何仅在其他节点中复制worker
s,而不在每个集群节点上使用manager
?(因为我不想要/不需要)。提前谢谢 您可以通过约束定义
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]