我在最新的Windows 10上使用适用于Windows的Docker CE并使用 针对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
docker pull
中的超时)到目前为止没有任何效果(尽管故障消息可能有所不同)。 也许我只是错过了上述方法的有效组合,或者其他任何技巧?
答案 0 :(得分:0)
FWIW,我能够通过使用--network host
选项构建容器并使用客户端的真实IP(而不是localhost或0.0.0.0)来解决此问题。