无法访问使用Docker和Google云部署的应用程序
我目前有一个通过Google云端平台build立的Linux Debian虚拟机。 我已经安装了docker,并希望开始在其中运行应用程序容器。
我正在按照“在Docker中运行Web应用程序”下的Docker网站下的“ find这里 ”下的文档下载图像,并且没有任何问题地运行它。 然后我运行$sudo docker ps
并获得0.0.0.0:32768->5000/tcp的端口
然后我尝试浏览到http://“MyExternalVMIP”:32768的网站,但应用程序没有出现。 我错过了什么吗?
首先,testing一下你的服务是否有效。 为此,从VM本身运行:
wget http://localhost:32768
要么
curl http://localhost:32768
如果这样做,这意味着服务正常运行,所以让我们继续进行debugging。
可能有两个防火墙阻止外部访问您的docker进程:
- 虚拟机的操作系统防火墙
- Google Compute Engine防火墙
您可以通过从同一GCEnetworking上的虚拟机本身和其他虚拟机访问URL(使用URL中的虚拟机名称,而不是外部IP)来查看是否受到第一个问题的影响:
wget http://[vm-name]:32768
要解决第一个问题,您必须打开单个端口 (推荐):
iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 32768 -j ACCEPT
或完全禁用防火墙,例如,通过停止iptables(不推荐)。
如果在解决此问题之后,您可以从同一GCEnetworking上的其他主机访问该URL,但仍无法从Google Compute Engine之外访问该URL,则会受到第二个问题的影响。 要修复它,你需要打开GCE防火墙的端口 ; 这也可以通过Developers Console中的Web UI完成。