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

标签 networking docker docker-compose docker-swarm

撰写/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 自己注册。

关于networking - 如何使用 docker-compose+docker-swarm+overlay 网络发现缩放的容器主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562498/

相关文章:

Docker Compose 持续部署设置

build - Docker build 没有网络,但是 docker run 有

docker - docker compose将保留旧卷,现在无法清除它们

docker - Docker容器无法通过VIRTUAL_HOST环境变量访问另一个容器

networking - 检查文件夹是.NET中的本地资源还是网络资源

networking - MSS 和 tcp 窗口大小

objective-c - 如何使用 C Obj C 或 Swift 扫描网络中的设备

android - 如何在Android手机上捕获蓝牙传出数据?

bash - 在Docker中提交交互式容器

使用 docker run 命令的 Docker ENTRYPOINT