在Google Cloud上查看Docker上的Tensorboard

我试图在Google Cloud上的Docker上显示来自TensorFlow的TensorBoard.

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

tensorboard –logdir ./

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

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

root @ 6cf64fd299f0:/#tensorboard –logdir ./
在端口6006上启动TensorBoard
(您可以导航到http:// localhost:6006)

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

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

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

最佳答案
default,TensorBoard在127.0.0.1上提供请求,只能在同一台机器上运行的进程访问.如果使用–host 0.0.0.0启动TensorBoard,它还将在远程接口上提供请求,因此您应该能够远程连接到它:

$tensorboard --logdir ./ --host 0.0.0.0

请注意,“在自定义端口上打开浏览器窗口”不会将您连接到TensorBoard服务器 – 此选项用于连接到非标准端口上的SSH服务器. Google Cloud Platform docs提供了有关如何从VM公开端口的信息.您需要允许TCP端口6006上的连接才能远程访问VM.您可能还需要按照instructions here从Docker容器中公开端口6006.

编辑:添加了一些分步说明,以帮助您的Docker配置.这里有几个问题,并且不可能分辨出哪一个失败了.

>启动Docker容器时配置端口转发:

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

这会将连接从VM上的端口7007转发到Docker容器中的6006. (其他值可能.)
>确保您可以从Docker容器中连接到TensorBoard:

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

第二个命令应该将一些HTML打印到控制台.
>在VM上的shell中,确保您可以连接到容器中运行的TensorBoard实例:

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

该命令应该将相同的HTML打印到控制台.
>配置Google Cloud防火墙,以允许本地客户端连接到VM上的端口7007.

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

您现在应该可以在客户端的Web浏览器中连接到TensorBoard.

转载注明原文:在Google Cloud上查看Docker上的Tensorboard - 代码日志