从Windows上的Docker容器中访问主机

问题描述 投票:0回答:1

我在最新的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
  • 重启docker守护进程(有时候有时也需要修复qazxsw poi中的超时)
  • Web服务器的不同IP地址(127.0.0.1,localhost,0.0.0.0,本地IP)

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

windows docker
1个回答
0
投票

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

详细信息:--network host

© www.soinside.com 2019 - 2024. All rights reserved.