docker windows暴露的端口不能从主机外部访问

我在Windows 10主机(运行Linux容器)上安装了Docker:

Client: Version: 17.03.1-ce API version: 1.27 Go version: go1.7.5 Git commit: c6d412e Built: Tue Mar 28 00:40:02 2017 OS/Arch: windows/amd64 Server: Version: 17.03.1-ce API version: 1.27 (minimum version 1.12) Go version: go1.7.5 Git commit: c6d412e Built: Fri Mar 24 00:00:50 2017 OS/Arch: linux/amd64 Experimental: true 

我运行了这样一个简单的命令:

 docker run -d -p 80:80 --name webserver nginx 

在我的主机上,我可以通过http:// localhost , http: //127.0.0.1,http : //192.168.1.151 (eth0), http://172.24.1.16 (eth1)等来访问它。

但是,从主机外部,在192.168.1.0/24和172.24.1.0/24子网上,访问Web服务器都会返回超时错误。

docker内部的linux机器已经被configuration为暴露端口。

百分之九十九,这是Windows防火墙。 尝试彻底closures它。

如果这不起作用,可能会将--cap-add=NET_BIND_SERVICE到您的--cap-add=NET_BIND_SERVICE docker run命令(通过https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities ) 。