首页 > 解决方案 > 从 Windows 上的 Docker 容器中访问主机

问题描述

我在最新的 Windows 10 上使用 Docker CE for Windows,并使用脚本构建了一个映像,该脚本针对 Web 服务器运行测试。(确切地说,是 WebDAV 服务器的试金石测试套件,但我认为问题很普遍。)

我在 Powershell 控制台上运行 Web 服务器:

> wsgidav -p 8080 -H localhost
21:04:19.107 - <13348)> wsgidav                     INFO    :  Running WsgiDAV/3.0.0a3 Cheroot/6.4.0 Python/3.6.5
21:04:19.107 - <13348)> wsgidav                     INFO    :  Serving on http://localhost:8080 ...  

从另一个 Powershell 控制台,我在 Docker 容器中运行我的脚本(使用 FROM alpine)。脚本启动并尝试访问端点,但没有成功:

> docker pull mar10/litmus
> docker run --rm -p 8080:8080 mar10/litmus http://gateway.docker.internal:8080
-> running `basic':
  0. init.................. FAIL (connection refused by `gateway.docker.internal' port 8080: Operation timed out)

我试过到目前为止

到目前为止没有任何效果(尽管失败消息可能不同)。也许我只是错过了上述的工作组合,或任何其他技巧?

标签: windowsdocker

解决方案


FWIW,我能够通过使用--network host选项构建容器并使用客户端的真实 IP(而不是 localhost 或 0.0.0.0)来解决它。

详细信息:https ://hub.docker.com/r/mar10/docker-litmus/


推荐阅读