无法从主机外部访问docker windows公开的端口

时间:2017-05-26 01:37:09

标签: docker docker-on-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://localhosthttp://127.0.0.1http://192.168.1.151(eth0),http://172.24.1.16(eth1)等访问它。

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

2 个答案:

答案 0 :(得分:2)

我不得不通过Windows防火墙允许%ProgramFiles%\ Docker \ Docker \ resources \ vpnkit.exe。

答案 1 :(得分:0)

docker中的linux机器已配置为暴露端口。

100次中的99次,它是Windows防火墙。尝试完全关闭它。

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