在Google Cloud上查看Docker上的Tensorboard

我正尝试在Google Cloud上的Docker上显示来自TensorFlow的TensorBoard。

http://tensorflow.org/how_tos/summaries_and_tensorboard/index.md

tensorboard --logdir ./

我在Apache上运行Apache(可能在我的第一个容器“ai-unicorn”Docker自己的容器“docker-playground”中)。 我可以在http://104.197.119.57/上看到来自Google Cloud的默认页面。

我在Google Cloud上启动TensorBoard,如下所示:

root@6cf64fd299f0:/# tensorboard --logdir ./ Starting TensorBoard on port 6006 (You can navigate to http://localhost:6006)

我尝试了使用端口6006的Google Cloud SSH选项,名为“在自定义端口上的浏览器窗口中打开”。

它显示:“我们无法通过端口6006连接到VM”。

从Google Cloud查看TensorBoard的正确方法是什么?

默认情况下 ,TensorBoard为127.0.0.1请求提供服务,只能在同一台机器上运行的进程访问。 如果您使用--host 0.0.0.0启动TensorBoard,它也会在远程接口上提供请求,所以您应该能够远程连接它:

 $ tensorboard --logdir ./ --host 0.0.0.0 

请注意,“自定义端口上的浏览器窗口中打开”不会将您连接到TensorBoard服务器 – 此选项用于连接到非标准端口上的SSH服务器。 Google云端平台文档提供了有关如何从您的虚拟机公开端口的信息。 您将需要允许TCP端口6006上的连接以远程访问您的虚拟机。 您可能还需要按照此处的说明从Docker容器中公开端口6006。

编辑:添加一些分步说明来帮助您的Dockerconfiguration。 这里有几个问题,不可能告诉哪一个失败。

  1. 在启动Docker容器时configuration端口转发:

     (vm)$ docker run -p 0.0.0.0:7007:6006 -it b.gcr.io/tensorflow/tensorflow 

    这将从虚拟机上的7007端口连接到Docker容器中的6006。 (其他值也是可能的。)

  2. 确保您可以从Docker容器内连接到TensorBoard:

     (container)$ tensorboard --logdir ./ --host 0.0.0.0 --port 6006 & (container)$ curl http://localhost:6006/ 

    第二个命令应该打印一些HTML到控制台。

  3. 在VM上的shell中,确保可以连接到在容器中运行的TensorBoard实例:

     (vm)$ curl http://localhost:7007/ 

    该命令应该打印相同的HTML到控制台。

  4. configurationGoogle云防火墙以允许本地客户端连接到虚拟机上的端口7007。

     (client)$ gcloud compute firewall-rules create tensorboard --allow tcp:7007 

    您现在应该能够在客户端的Web浏览器中连接到TensorBoard。

您不必使用Docker来显示TensorBoard。 但是如果你想使用Docker,只需在你的Docker镜像中运行TensorBoard即可。

诀窍是允许外部访问默认的TensorBoard tcp端口6006。

我尝试了以下工作解决scheme,在我的Google Cloud VM中显示TensorBoard。

  1. 确保您通过gcloudauthentication:

    gcloud身份validationlogin

  2. 允许公共访问tcp端口6006

    gcloud计算防火墙规则创buildtensorboard-port –allow tcp:6006

  3. 在虚拟机上运行TensorBoard

    张量板–logdir =工作区/火车/

  4. 使用外部IP地址访问VM外部的TensorBoard:

    打开地址http:// your_vm_external IP:6006 /,

    例如http://104.196.140.145:6006/ ,其中104.196.140.145是我的虚拟机的外部IP地址。

享受TensorBoard