Windows 使用docker上的k6测试本地托管站点

Windows 使用docker上的k6测试本地托管站点,windows,docker,localhost,k6,Windows,Docker,Localhost,K6,我在本地主机1235中的计算机上运行了一个应用程序,我正在尝试对其进行加载测试 我为docker安装了k6容器来测试它,但当然,从docker的性质来看,我的容器有一个不同的localhost。我在试着理解你要做什么 我运行以下命令: docker run-it--rm--net=host-vc:/users/k6:/k6 loadimpact/k6 run/k6/script 我在某个地方读到--net=host在windows上不工作,对吗?如何找到主机IP 我已尝试按此教程运行: 我

我在本地主机1235中的计算机上运行了一个应用程序,我正在尝试对其进行加载测试

我为docker安装了k6容器来测试它,但当然,从docker的性质来看,我的容器有一个不同的localhost。我在试着理解你要做什么

我运行以下命令:

docker run-it--rm--net=host-vc:/users/k6:/k6 loadimpact/k6 run/k6/script

我在某个地方读到--net=host在windows上不工作,对吗?如何找到主机IP

我已尝试按此教程运行:

我发现172.17.0.1的IP在我的测试中不起作用

我还尝试添加
-p 1235:1235
,但失败了,我猜docker试图绑定此端口并转发到它

提前感谢,,
docker实例中的Chaim

k6应该能够连接到主机上的“公共”IP—在以太网或Wifi接口上配置的IP。您可以执行
ipconfig/all
以查看所有接口及其IP

在我的Mac电脑上,我可以这样做:

$python httpserv.py&
[1] 7824 
在8000港服务
$ifen1
en1:标志=8863 mtu 1500
乙醚b8:09:8a:bb:f7:ed
inet6 fe80::148f:5671:5297:fc24%en1预桥64安全作用域ID 0x5
inet 192.168.0.107网络掩码0xffffff00广播192.168.0.255
nd6选项=201
媒体:自动选择
状态:活动
$echo'从“k6/http”导入http;导出默认函数(){let res=http.get(“http://192.168.0.107:8000);console.log(res.status);};'|docker运行-i loadimpact/k6运行-


也就是说,我在主机的端口8000上启动一个简单的HTTP服务器,然后执行k6 docker映像,并告诉它根据主机上物理的外向en1接口的IP地址访问URL。在Windows上,您可以使用
ipconfig
查找面向外部的IP。

在k6脚本中,使用url
host.docker.internal
访问主机上运行的内容

例如,访问在
http://localhost:8080

//script.js
从“k6/http”导入http;
从“k6”导入{sleep};
导出默认函数(){
http.get(“http://host.docker.internal:8080");
睡眠(1);
}
然后在windows或mac上,可以通过以下方式运行:

$docker运行-i loadimpact/k6运行-