【发布时间】:2021-04-04 23:11:43
【问题描述】:
我的问题是 k6 和 InfluxDB 特有的,但我认为根本原因更普遍。
我正在使用官方 k6 发行版及其 docker-compose.yml 运行 Grafana 和 InfluxDB,我从 docker-compose up -d influxdb grafana 命令开始。
可以从 localhost:3000 访问 Grafana 仪表板,但使用推荐的命令 $ docker run -i loadimpact/k6 run --out influxdb=http://localhost:8086/myk6db - <script.js 运行 k6(遵循 this 指南)k6 会引发以下错误(在 Linux 和 MacOS 上也是如此):
level=error msg="InfluxDB: Couldn't write stats" error="Post \"http://localhost:8086/write?consistency=&db=myk6db&precision=ns&rp=\": dial tcp 127.0.0.1:8086: connect: connection refused"
我也尝试了使用 localhost 和 127.0.0.1 以及 InfluxDB 的命令。也有docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' k6_influxdb_1返回的IP地址,要么因为上述错误而失败,要么没有工作,这意味着k6没有抱怨,但InfluxDB中没有出现数据。
然而,如果我查询网络接口正在使用的“内部 IP”地址(使用 ifconfig 命令)并使用该 IP(192.168.1.66),一切正常:
docker run -i loadimpact/k6 run --out influxdb=http://192.168.1.66:8086/k6db - <test.js
所以我的问题是:
- 为什么 Grafana 与 localhost:3000 可以正常工作而 InfluxDB 与 localhost:8086 不能正常工作?
- 为什么只有“内部 IP”有效,其他 IP 无效?
我知道有一个类似的问题,但这并没有回答我的问题。
【问题讨论】:
标签: docker docker-compose ip influxdb k6