【问题标题】:Access to Google Cloud Datalab Fails with ssh Error访问 Google Cloud Datalab 失败并出现 ssh 错误
【发布时间】:2016-12-21 15:59:34
【问题描述】:

尝试通过以下方式访问 Google Cloud Datalab 服务器: docker run -it -p "127.0.0.1:8081:8080" -v "${HOME}:/content" -e "GATEWAY_VM=mltensorflow-1470671201129/us-east1-b/vm-instance-name" gcr.io/cloud-datalab/datalab:local

根据Run Cloud Datalab on Google Cloud Platform

它失败了: 错误:(gcloud.compute.ssh)无法通过 SSH 连接到实例。您的 SSH 密钥可能尚未传播到实例。再次尝试运行此命令。如果仍然无法连接,请验证防火墙和实例是否设置为接受 ssh 流量。

我使用的是 Windows 10 客户端。 现在重复安装会产生这个错误: 通道 2:打开失败:连接失败:连接被拒绝 无法设置到 VM vm-instance-name 的 SSH 隧道

可以通过其他方式访问实例,例如: gcloud compute --project "project_name" ssh --zone "us-west1-a" "ins-name"

【问题讨论】:

  • 只是快速检查。您是否将 vm-instance-name 替换为您创建的 vm 实例?我问的原因是因为vm-instance-namegcloud compute ... 中使用的实例名称不匹配
  • 很好,安东尼奥。不幸的是,这不是原因(我列出了通用 gcloud 语句 - 真正的参数是可以的,并且与实际的 vm 实例名称匹配)。
  • 我认为 Datalab 文档中缺少某些内容 - 他们只是改变了您在周末访问它的方式。它可能类似于:gloud docker
  • 我浏览了文档,我可以连接到 GCE 中的网关服务器。注意:我收到了您在此处提到的相同错误 (Failed to setup the SSH tunnel)。 30 秒后,我再次尝试docker run it ... 并没有收到错误。
  • 不幸的是,我不在 Windows 上。 Docker 在我的 Windows 虚拟机中不起作用。来自forums.docker.com/t/…,“Docker for Windows 需要 hyper-v 和虚拟化扩展。没有嵌套虚拟化(VirtualBox 中不可用),Docker for Windows 无法安装和工作。”

标签: google-cloud-datalab


【解决方案1】:

命令 docker run ... 有一个在 Windows AFAIK 上不起作用的参数。但奇怪的是,我预计会出现一个非常不同的错误,实际上由于 ${HOME} 而设法得到一个错误。

这是我运行的命令,它运行良好 - 在将值替换为 HOME 之后(您需要替换下面的 [proj-id]。

docker run -it -p "8081:8080" -v "/C/Users/dinesh/Documents/:/content"    -e "GATEWAY_VM=[proj-id]/us-central1-f/datalab"  gcr.io/cloud-datalab/datalab:local

不确定这是否适合您,但如果替换出现问题,值得尝试一下。 (我假设 VM 是使用 datalab-gateway.yaml 创建的,没有任何错误。)

谢谢。

迪内什·库尔卡尼

PM、Datalab 和 Cloud ML

【讨论】:

  • 上述硬编码路径不起作用(与路径相关的错误最初弹出,然后在一段时间后消失;这就是我没有费心对其进行硬编码的原因)。
  • 重复整个过程,现在在 Ubuntu 16.04 上。通过了上述问题点。遇到另一个问题:浏览器没有显示任何 Python 笔记本。
  • 请您提供更多信息以帮助解决问题?你在浏览器中看到了什么?
  • 当我指向 localhost:8081 URL 更改为 localhost:8081/tree/datalab 并显示空白屏幕。未加载任何笔记​​本。 (我确实通过了“允许”按钮)。
  • 这可能是原因 - 在 docker run 中找到这一行 ... 输出:{"name":"app","hostname":"326a7fabf546","pid":181,"level" :50,"err":{"message":"timeout","name":"Error","stack":"Error: timeout\n at timeoutFunc (/datalab/web/node_modules/tcp-port-used/ index.js:192:25)\n 在 Timer.listOnTimeout (timers.js:92:15)"},"msg":"无法为匿名用户启动 Jupyter 服务器。","time":"2016-08 -17T09:25:32.252Z","v":0}
【解决方案2】:

官方说明Run Cloud Datalab on Google Cloud Platform的问题是,提供的创建网关VM的命令在Windows上无法正常工作。

--metadata "google-container-manifest=$(cat datalab-gateway.yaml)" 替换为--metadata-from-file google-container-manifest=datalab-gateway.yaml,它将使用datalab-gateway.yaml 创建VM,而不会出现任何错误。您可以登录到您的新实例并运行sudo docker ps 以仔细检查容器是否正在运行。

之后您可以继续下一步 (docker run...),只需按照 Dinesh 的说明将 ${HOME} 替换为 /C/Users/<your path>

【讨论】:

    猜你喜欢
    • 2021-03-02
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2015-01-05
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多