我在最新的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)
我到目前为止尝试过
gateway.docker.internal
主机名-p PORT:PORT
--net=host
到目前为止没有任何工作(尽管失败信息可能不同)。也许我只是错过了上述的工作组合或任何其他技巧?
FWIW,我能够通过使用docker pull
选项构建容器并使用客户端的真实IP(而不是localhost或0.0.0.0)来解决它。
详细信息:--network host