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

Docker运行K6脚本出现ModuleSpecifier错误如何解决?

问题原因及解决步骤

1. 修复K6脚本挂载与路径错误

你遇到的两次报错本质都是脚本及依赖文件没有被k6容器正确识别:

  • 第一次用- <K6-script.js的stdin传入方式仅支持无外部依赖的单文件脚本,你脚本引用的libs、K6文件夹没有进入容器,所以会报模块找不到的错误。
  • 第二次已经正确挂载了本地目录到容器的/src路径,但执行时直接写K6-script.js没有指定容器内的绝对路径,k6找不到文件就会默认当成远程模块发起请求,触发第二次报错。

正确操作逻辑是:挂载包含脚本、依赖文件夹的整个本地目录到容器内固定路径,执行时指定容器内的脚本绝对路径即可。

2. 修复InfluxDB访问问题

首先明确:浏览器访问http://localhost:8086返回404属于正常现象,InfluxDB 1.8的8086端口是API服务端口,没有默认Web UI,不需要处理这个问题。
需要修改的是k6命令里的InfluxDB地址:你在容器内写localhost:8086访问的是k6容器自身的8086端口,而非宿主机上运行的InfluxDB服务。Windows/Mac系统下的Docker Desktop可以用host.docker.internal代替localhost指向宿主机,Linux系统可以在命令中加--net=host参数保持localhost访问。
另外需要提前创建myk6db数据库,否则k6无法写入数据:你可以在宿主机命令行执行curl -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE myk6db"完成库创建。

3. 最终执行命令

Windows/Mac系统使用以下命令:

docker run -v //c/loadtesting:/src loadimpact/k6 run --out influxdb=http://host.docker.internal:8086/myk6db /src/K6-script.js

Linux系统使用以下命令:

docker run --net=host -v /home/你的本地路径/loadtesting:/src loadimpact/k6 run --out influxdb=http://localhost:8086/myk6db /src/K6-script.js

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:24:02