我正在使用Java,但这不一定是Java问题。 Google的“java-compat”图片是Debian(3.16.7-ckt20-1 + deb8u3〜bpo70 + 1(2016-01-19))。可能吗?如何在Google Managed VM环境中设置VNC
这里是我的Dockerfile:
FROM gcr.io/google_appengine/java-compat
RUN apt-get -qqy update && apt-get qqy install curl xvfb x11vnc
RUN mkdir -p ~/.vnc
RUN x11vnc -storepasswd xxxxxxxx ~/.vnc/passwd
EXPOSE 5900
ADD . /app
,并在管理控制台中,我创建防火墙规则开拓5900最后一点,我呼吁与VNC服务器本身在“_ah /启动”启动挂钩此命令:
x11vnc -forever -usepw -create
所有似乎都设置正确,但我无法连接TightVNC。我在管理控制台中使用公用(短暂)IP地址,后跟:: 5900(由于某种原因,TightVNC需要两个冒号)。我收到服务器拒绝连接的消息。实际上,当我尝试telnet到5900端口时,它被阻止。
接下来我SSH到容器机,当我测试用的wget xxx.xxx.xxx.xxx:5900容器上的端口,我得到的连接。所以在我看来,容器不接受5900端口的连接。我是否正确?是否可以打开端口并将我的VNC客户端路由到Docker容器中?任何帮助赞赏。
为什么我不能使用Compute Engine。只是为了抢占一些关于使用谷歌的计算引擎环境而不是托管虚拟机的评论。我大量使用我的代码中的数据存储和任务队列。我认为这些可以在Compute Engine上运行(或者本地/高效运行)。但我可以将其作为一个单独的问题提出。
更新: Per Paul在评论中了解了一些码头术语:我可以在Google环境中的容器上发布端口吗?
我相信揭露只暴露端口到其他码头实例。尝试发布它。 http://stackoverflow.com/questions/22111060/difference-between-expose-and-publish-in-docker –
伟大的参考保罗。我认为这是我的问题 - 我无法控制“docker run”参数来放置该“-p”标志。该命令由Google环境执行(因此在托管虚拟机中被管理)。 – Robert
fyi http://stackoverflow.com/questions/25602132/how-do-i-access-my-appengine-datastore-entities-from-my-compute-engine-vm –