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

http://tensorflow.org/how_tos/summaries_and_tensorboard/index.md
tensorboard --logdir ./
我在Apache Cloud上运行了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通过default127.0.0.1上处理请求,该请求只能由在同一台计算机上运行的进程访问。如果您使用--host 0.0.0.0启动TensorBoard,它还将在远程接口(interface)上处理请求,因此您应该能够远程连接到它:

$ 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。
  • 关于docker - 在Google Cloud上的Docker上查看Tensorboard,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33836728/

    10-15 09:34