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

Docker环境下K6写入InfluxDB1.8报connection refused如何解决

问题根因

你当前命令中配置的InfluxDB地址http://localhost:8086指向的是K6容器自身的回环地址,而非运行在Windows宿主或其他容器中的InfluxDB服务,因此触发连接拒绝错误。

解决方案

方案1:使用Docker桌面宿主域名(最快生效)

Windows下Docker Desktop默认支持容器内通过host.docker.internal域名访问宿主机器的端口,按以下操作即可快速修复:

  • 先确认你启动InfluxDB容器时已经做了端口映射,启动命令需包含-p 8086:8086参数,把容器的8086端口映射到Windows宿主的8086端口
  • 修改K6启动命令为:
docker run -v //c/loadtesting:/src -i loadimpact/k6 run --out influxdb=http://host.docker.internal:8086/myk6db /src/K6-script.js

方案2:自定义Docker网络(适合整套监控栈长期使用)

如果你的InfluxDB、Grafana都用Docker部署,建议用自定义网络实现容器间的稳定通信,不用依赖宿主端口映射:

  • 第一步:创建专用桥接网络
docker network create k6-monitor
  • 第二步:重新启动InfluxDB容器,加入该网络并指定容器名(提前备份已有数据避免丢失)
docker run -d \
  --name influxdb \
  --network k6-monitor \
  -p 8086:8086 \
  -e INFLUXDB_DB=myk6db \
  -v influxdb-data:/var/lib/influxdb \
  influxdb:1.8

这里添加了INFLUXDB_DB环境变量,容器启动时会自动创建myk6db数据库,不需要手动进入容器创建。

  • 第三步:启动K6时加入同一网络,直接用InfluxDB的容器名作为访问地址
docker run -v //c/loadtesting:/src \
  --network k6-monitor \
  -i loadimpact/k6 run \
  --out influxdb=http://influxdb:8086/myk6db \
  /src/K6-script.js

后续启动Grafana时也加入k6-monitor网络,配置InfluxDB数据源时直接填写地址http://influxdb:8086即可,不需要映射端口到宿主也能正常通信。

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:39:04