我目前通过Google Cloud Platform设置了一个Linux Debian VM。我安装了docker,并希望开始在其中运行应用程序容器。
我正在关注Docker网站Found Here下的文档
“在Docker中运行Web应用程序”我下载图像并运行它没有任何问题。然后我运行$sudo docker ps
并获取端口0.0.0.0:32768->5000/tcp
然后我尝试浏览网站http://“MyExternalVMIP”:32768,但应用程序没有出现。我错过了什么吗?
答案 0 :(得分:2)
首先,测试一下您的服务是否有效。要执行此操作,请从VM本身运行:
wget http://localhost:32768
或
curl http://localhost:32768
如果可以,那就意味着服务运行正常,所以让我们进一步调试。
可能有两个防火墙阻止对Docker进程的外部访问:
您可以通过访问来自VM本身和同一GCE网络上的其他VM的URL来查看您是否受到第一个问题的影响(使用URL中的VM名称,而不是外部IP): / p>
wget http://[vm-name]:32768
要解决第一个问题,您必须打开the single port(推荐):
iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 32768 -j ACCEPT
或完全禁用防火墙,例如,通过停止iptables(不推荐)。
如果在修复此问题后,您可以从同一GCE网络上的其他主机访问该网址,但仍无法从Google Compute Engine外部访问该网址,则您会受到第二个问题的影响。要修复它,您需要open the port in the GCE firewall;这也可以通过Developers Console中的网络用户界面完成。
答案 1 :(得分:0)
如下所示在本地ssh配置文件中使用特定的本地转发端口创建一个条目。就我而言,它是一个纱线IP的示例,我想在浏览器中访问它。
Host hadoop
HostName <External-IP>
User <Local-machine-username>
IdentityFile ~/.ssh/<private-key-for-above-user>
LocalForward 8089 <Internal-IP>:8088