从在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到达