从在Docker for Windows上运行的容器中,如何访问主机上的端口?

我正在Docker for Windows上运行一个基于CentOS的容器,并尝试连接到在我的主机环境的端口8545上运行的http服务。

我试过这个,尝试了各种可疑的主机名和IP地址:

curl http://localhost:8545

但是我得到的错误信息是“curl:(7)失败连接到本地:8545;连接被拒绝”

我应该如何弄清楚使用什么IP地址? 有什么我需要configuration,只要允许从容器内访问端口号?

本地主机不工作,但我认为与Docker的Windows。 有几件事你可以尝试。 首先,您可以在dockerfile中添加EXPOSE'portnumber',以便容器将侦听此端口。 你也可以使用docker运行-p 8545:8545 ,它将映射容器的端口和主机。

要获取容器的IP地址,您可以使用:

 docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" containername 

你可以使用它的ip来访问主机,但是localhost / 127.0.0.1将不能工作(它们将会parsing为作为docker for windows一部分的Linux VM)。 如果您使用默认的networking设置,您的主机应该从容器的10.0.75.1到达