You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何启动Karate Gatling分布式测试?Docker连接异常求助

解决Karate Gatling分布式测试Docker环境下的Docker守护进程连接问题

问题分析

从错误日志能明确看出:master节点容器内执行docker run命令时,无法连接到unix:///var/run/docker.sock。核心原因有两点:

  • 容器内部默认未安装Docker客户端,也未关联宿主机器的Docker守护进程
  • 代码里serverUrl设为127.0.0.1,slave容器无法通过这个地址访问master节点的服务

解决方案

1. 修正master节点的Docker启动命令

启动master容器时,需要挂载宿主的Docker套接字和客户端二进制文件,让容器内的docker命令能调用宿主的Docker守护进程。修改后的命令如下:

docker container run -d -t \
  --network=karate_network \
  --name karate_boss \
  --privileged \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(which docker):/usr/bin/docker \
  karate \
  mvn clean test -Dtest=TestPerformanceDocker -DTHREADS=3 -DRAMP_DURATION=600 -DCONST_DURATION=600 -DNODES_COUNT=3

参数说明:

  • -v /var/run/docker.sock:/var/run/docker.sock:挂载宿主的Docker套接字到容器,打通容器与宿主Docker守护进程的连接
  • -v $(which docker):/usr/bin/docker:将宿主的Docker客户端二进制文件挂载到容器,确保容器内可执行docker命令

2. 修正测试代码中的serverUrl

容器内的127.0.0.1指向容器自身,slave容器无法通过该地址连接master的9090端口。需将serverUrl改为master容器的hostname(karate_boss,同一网络下可直接解析)或宿主机器IP:

public class TestPerformanceDocker {
    @Test
    void test(){
        // 同一karate_network网络下,直接使用容器hostname即可访问
        String serverUrl= "karate_boss";
        String threads = System.getProperty("THREADS");
        String rampDuration = System.getProperty("RAMP_DURATION");
        String constantDuration =System.getProperty("CONST_DURATION");
        Integer executorCount=Integer.parseInt(System.getProperty("NODES_COUNT"));
        String cmd ="mvn gatling:test -DTHREADS="+threads+" -DRAMP_DURATION="+rampDuration+" -DCONST_DURATION="+constantDuration+"";
        GatlingMavenJobConfig config = new GatlingMavenJobConfig(executorCount, serverUrl, 9090) {};
        config.setMainCommand(cmd);
        JobManager<Integer> manager = new JobManager(config);
        manager.start();
        manager.waitForCompletion();
    }
}

3. 验证网络连通性

确保所有容器处于同一karate_network网络,可通过以下命令测试slave容器能否访问master:

docker run --rm --network=karate_network busybox ping karate_boss -c 3

内容的提问来源于stack exchange,提问作者Ahri Jiang US

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:35:16