使用Docker无法通过Web-UI访问Locust

4
我已经在docker中安装了locust,并映射了docker端口,但是当我运行locust命令时,出现以下错误。我能够在命令行上运行locust,但无法在Web界面上运行,可能是我误解了访问时应该使用哪个主机或端口。
命令: locust -f locustfile.py 错误信息:

OSerror errno 97 address family not supported by protocol

命令: locust -f locustfile.py --web-host=localhost 结果:

[2019-12-18 11:24:47,101] ABZ-218/INFO/locust.main: Starting web monitor at http://localhost:8089

[2019-12-18 11:24:47,102] ABZ-218/INFO/locust.main: Starting Locust 0.13.2

但无法在浏览器中访问。
我已将端口0.0.0.0:8089->80进行了映射,那么在访问locust时应该使用哪个命令?在chrome浏览器中访问时应该使用哪个命令?

你能分享你的Docker文件吗? - undefined
3个回答

1

--web-host=localhost 不是必需的,默认情况下Locust将侦听所有接口。尝试删除它并查看是否有帮助。


嗨,正如我在问题中已经提到的那样,只需输入命令:locust -f locustfile.py 就会显示以下错误:错误:OS错误 errno 97 协议不支持的地址族 - undefined
非常抱歉,我误读了你的问题以及你尝试过的步骤。你是使用locustio/locust镜像还是自己构建的镜像?稍微搜索了一下,发现"oserror errno 97..."错误可能与仅支持ipv6有关。也许可以尝试禁用ipv6。 - undefined
顺便说一下,如果你在 Docker 容器内绑定到 localhost,它将无法从外部访问。Locust 需要绑定到容器内的“真实”接口(通常是 eth0),以便端口能够在 Docker 外部暴露出来(这就解释了为什么 --web-host=localhost 不起作用)。 - undefined

0

仅供未来访问此页面的访客参考:如果您使用docker compose run(而不是up)从Docker运行您的Locust实例,则由于端口映射的原因,可能无法访问Web界面。

在澄清runup命令之间的区别时,docker compose run文档指出:

第二个区别是docker compose run命令不会创建服务配置中指定的任何端口。这样可以避免与已打开的端口发生冲突。如果您确实希望创建服务的端口并将其映射到主机,请指定--service-ports

因此,要使用docker启动Locust Web界面,请使用以下两种方法之一:

docker compose up
docker compose run --service-ports <service-name> <command>

0

你可以找到你的应用程序运行的IP地址,并将其作为参数传递给--host,例如--host http://127.0.0.1:8000


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接