从 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。您可以在此处阅读有关此功能的更多信息:
我正在尝试使用 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。您可以在此处阅读有关此功能的更多信息: