一尘不染

在Google Cloud上的Docker上查看Tensorboard

docker

我正在尝试在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的正确方法是什么?


阅读 351

收藏
2020-06-17

共1个答案

一尘不染

通过默认情况下,TensorBoard上供应的要求127.0.0.1,这是只有在同一台机器上运行的进程进行访问。如果您使用来启动TensorBoard
--host 0.0.0.0,它也将在远程接口上处理请求,因此您应该能够远程连接到它:

$ tensorboard --logdir ./ --host 0.0.0.0

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

编辑: 添加了一些分步说明来帮助您配置Docker。这里有几个问题,无法确定哪个是失败的。

  1. 在启动Docker容器时配置端口转发:
    (vm)$ docker run -p 0.0.0.0:7007:6006 -it b.gcr.io/tensorflow/tensorflow
    

这会将连接从VM上的端口7007转发到Docker容器中的6006。(其他值是可能的。)

  1. 确保您可以从Docker容器中连接到TensorBoard:
    (container)$ tensorboard --logdir ./ --host 0.0.0.0 --port 6006 &
    

    (container)$ curl http://localhost:6006/

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

  1. 在VM上的外壳中,确保可以连接到在容器中运行的TensorBoard实例:
    (vm)$ curl http://localhost:7007/
    

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

  1. 配置Google Cloud防火墙,以允许本地客户端连接到VM上的端口7007。
    (client)$ gcloud compute firewall-rules create tensorboard --allow tcp:7007
    

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

2020-06-17