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 ) 。