Docker部署k6,一条命令跑起性能测试环境

准备工作:先确认Docker环境

用Docker部署k6的前提是机器上已经安装了Docker。
如果你还没装,可以参考官方文档(Windows/Linux/macOS都有对应安装包)。
安装后打开终端,执行docker version确认版本号。
如果看到Client和Server信息,说明Docker正常运行。

注意:Docker Desktop在Windows/macOS上需要先启动。Linux下如果当前用户不在docker组,命令前加sudo

拉取k6镜像并启动容器

k6官方镜像名为grafana/k6,一行命令就能完成拉取和运行:

docker pull grafana/k6

拉取完成后,可以用最简单的“hello world”测试容器是否正常:

docker run --rm -i grafana/k6 run --stdin <

这条命令会把脚本通过标准输入传给k6容器,容器内立刻执行一次虚拟用户访问。
如果看到类似的检查点和请求耗时输出,说明Docker部署k6成功。

关键点--rm表示容器退出后自动删除,-i保持输入流打开。
实际使用中你更常用卷挂载的方式运行本地脚本。

编写脚本并挂载运行

把测试脚本保存到本地文件,比如test.js

import http from 'k6/http';
import { check, sleep } from 'k6';

export default function () {
  let res = http.get('https://httpbin.org/get');
  check(res, { 'status is 200': (r) => r.status === 200 });
  sleep(0.5);
}

然后通过挂载目录运行:

docker run --rm -i -v $(pwd):/scripts grafana/k6 run /scripts/test.js

这里$(pwd)是当前目录,Linux/macOS下有效;
Windows PowerShell用${PWD}
脚本放在容器内的/scripts下,k6会读取执行。

如果测试目标在宿主机(如localhost),容器内无法直接访问本地网络。
解决方法:用--network=host(Linux)或替换为host.docker.internal(Windows/macOS)。

常见报错与避坑说明

报错1:docker: command not found
原因:Docker未安装或未加入PATH。请重新安装或手动添加路径。

报错2:Cannot connect to the Docker daemon
原因:Docker服务未运行。Linux下执行sudo systemctl start docker,Windows/macOS启动Docker Desktop。

报错3:k6 run - < script.js报错
如果你直接在容器内使用-从stdin读取脚本,请确保脚本内容用EOF包裹正确(参考上文第一条命令)。避免中文乱码或多余空格。

避坑提示

  • 镜像默认使用--rm,容器退出后自动清理。如果想保留容器日志,去掉--rm并加上--name k6-test
  • 脚本路径要写对:挂载后容器内路径是/scripts/你的文件名.js
  • 测试目标地址如果是内网服务,请确保容器网络模式能连通主机或直接使用--network host

验证部署是否成功

运行以下命令做一个简单的基准测试:

docker run --rm -i grafana/k6 run --vus 2 --duration 10s --stdin <

观察输出末尾的http_req_duration平均值和checks部分。
如果全部通过,Docker部署k6就彻底落地了。
你也可以用docker ps -a确认没有残留容器。

如果你的场景需要保存测试报告,可以用--out json=/results/report.json配合挂载目录实现。

小结

通过以上步骤你已经学会了如何用Docker部署k6并运行真实测试。
实际生产环境中,k6适合持续集成、自动化压测,配合InfluxDB+Grafana还能可视化结果。
遇到异常时优先检查Docker运行状态和网络模式,大多数问题都能快速定位。
如果你正在处理Docker部署k6,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
Linux服务器系统安全加固教程
下一篇
宝塔面板Nginx缓存清理全攻略:三步解决网站更新不生效
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意