docker windows 暴露的端口无法从主机外部访问
docker windows exposed ports cannot be accessed from outside the host
我在 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 服务器 returns 时出现超时错误。
docker 内的 linux 机器已经配置为公开端口。
100 次中有 99 次是 Windows 防火墙。尝试完全关闭它。
如果这不起作用,可以将 --cap-add=NET_BIND_SERVICE
添加到您的 docker run
命令(通过 https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)。
我必须允许 %ProgramFiles%\Docker\Docker\resources\vpnkit.exe 通过 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 服务器 returns 时出现超时错误。
docker 内的 linux 机器已经配置为公开端口。
100 次中有 99 次是 Windows 防火墙。尝试完全关闭它。
如果这不起作用,可以将 --cap-add=NET_BIND_SERVICE
添加到您的 docker run
命令(通过 https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities)。
我必须允许 %ProgramFiles%\Docker\Docker\resources\vpnkit.exe 通过 Windows 防火墙。