如何在分布式Docker配置中运行Locust?worker连接master失败排查
问题根因
你的worker服务启动参数中--master-host 127.0.0.1指向的是worker容器自身的本地回环地址,无法访问到同docker-compose网络下的master容器。Docker Compose默认会为同一配置下的所有服务创建专属内部网桥,同网桥内的服务可以直接通过服务名完成DNS寻址。
解决方案
修改docker-compose.yml中worker服务的command参数,将--master-host的取值改为master服务的服务名master,修改后完整配置如下:
version: '3' services: master: image: locustio/locust ports: - "8089:8089" volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --master worker: image: locustio/locust volumes: - ./:/mnt/locust command: -f /mnt/locust/locustfile.py --worker --master-host master
验证操作
- 先执行
docker-compose down销毁原有异常集群容器 - 重新执行
docker-compose up --scale worker=4启动集群 - 查看master节点日志,会出现worker连接成功的提示,代表集群已正常组网
- 从Web UI发起测试即可观察到master与worker的交互日志
内容的提问来源于stack exchange,提问作者Aurelia Peters
相关产品推荐
相关产品推荐

