代码之家  ›  专栏  ›  技术社区  ›  mar10

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

  •  0
  • mar10  · 技术社区  · 7 年前

    我在最新的Windows10上使用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守护进程(有趣的是,有时 修正超时 docker pull )
    • web服务器的不同IP地址(127.0.0.1、本地主机、0.0.0.0、本地IP)

    到目前为止一切都没有起作用(尽管失败消息可能不同)。 也许我只是错过了上面的一个工作组合,或者其他的技巧?

    1 回复  |  直到 7 年前
        1
  •  0
  •   mar10    6 年前

    FWIW,我用 --network host 选项并使用客户端的实际IP(而不是本地主机或0.0.0.0)。

    详情如下: https://hub.docker.com/r/mar10/docker-litmus/

    推荐文章