从 Docker 内的加特林模拟连接到本地主机

Connecting from gatling simulation inside Docker to localhost

我正在尝试使用 MacOS 在 Docker 中使用 Gatling 测试我的本地主机服务。

我运行Docker使用:

  docker run -it -d --rm \
    --network="host" \
    -v $(PWD)/conf:/opt/gatling/conf \
    -v $(PWD)/user-files:/opt/gatling/user-files \
    -v $(PWD)/results:/opt/gatling/results \
    --name $CONTAINER_NAME $IMAGE_NAME

Afaik 使用“--host”可以从内部使用主机网络 Docker。

我的服务 运行 端口 9000,所以我的基地 url 加特林机,所以我这样定义它:

  private val baseUrl = "http://127.0.0.1:9000"
  private val httpProtocol = http
    .baseUrl(baseUrl)

尽管我不断得到:

AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:9000

是我的配置有问题,还是 Gatling 限制?

将主机地址从 http://127.0.0.1 更改为 host.docker.internal,它应该可以工作。

本质上 host.docker.internal 将 returns 我们的 docker 主机的 IP。但此功能仅存在于 Docker for Mac OSX & Docker for Windows。您可以在此处阅读有关此功能的更多信息:

https://docs.docker.com/docker-for-mac/networking/

https://docs.docker.com/docker-for-windows/networking/.