我在启用了防火墙的 macOS High Sierra 机器上运行 Nginx 容器,内容如下:
docker run -p 80:80 --name nginx nginx
通过机器的私有网络 IP 地址访问 Nginx 在机器本身上可以正常工作,但是尝试在网络上的其他机器上访问它时会失败。
我尝试过的事情:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/Docker.app/Contents/MacOS/Docker
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/Docker.app/Contents/MacOS/Docker
和
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/bin/vpnkit
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/bin/vpnkit
由于 vpnkit 似乎正在监听端口 80 lsof -i :80
:
vpnkit TCP *:http (侦听)
此外,执行 nmap -p 80 显示:
港口国服务
80/tcp 过滤 http