Skip to main content
 首页 » 编程设计

networking之如何使用 docker-compose+docker-swarm+overlay 网络发现缩放的容器主机

2025年05月04日25TianFang

撰写/docker-compose.yml

version: '2' 
 
services: 
    worker: 
        image: some-image 
 
    manager: 
        image: some-image 
        environment: 
            # number of workers 
            - INSTANCES=5 
 
networks: 
    default: 
        driver: overlay 

worker 的比例是

docker-compose scale worker=5 

管理容器负责将工作负载分配给工作容器。

为了达到这个目的, 管理器容器需要知道有多少 worker 以及主机名是什么。

我知道我可以使用主机“worker”或“compose_worker_1”访问第一个工作容器,使用“compose_worker_2”访问第二个容器。

但是经理怎么知道有多少 worker 呢?

我目前的解决方法是将工作人员的数量指定为环境变量,但已经运行 docker-compose scale 似乎很乏味。

我可以使用任何其他轻量级方法来发现工作人员的数量吗?

请您参考如下方法:

我会让 worker 在启动并准备好处理工作后连接回 manager,作为“注册”。这样 manager 就不需要知道任何事情,它只需要等待 workers 自己注册。