问题描述
我正在尝试将 VS Code 远程开发连接到使用 AI Platform(笔记本实例)在 Google Cloud 上运行的 JupyterLab 服务器。
如何添加不连接到虚拟机,而是连接到运行 JupyterLab 服务器的 docker 容器的 ssh 主机?
我希望能够从我本地笔记本电脑的 VS Code 中编辑该容器中的源
我知道 gcloud compute config-ssh
,它编辑我的 ~/.ssh/config
并添加一个 Host
条目,VS Code 可以使用它连接到 VM。但我需要更进一步,进入在那里运行的 docker 容器的文件系统。
编辑:我的问题的前提是错误的,我已经学会了。 jupyterlab 不在容器中运行;它正常运行在VM上。因此,ssh
进入 VM 使我可以访问与 jupyter 可用的文件系统相同的文件系统。唯一的问题是将 jupyter
用户指定为 ssh
。
解决方法
Google 有关于 Using ssh to access JupyterLab 的文档。如果您在 VM 上运行并知道实例名称,则可以建立一个到 VM 的 SSH 隧道。来自文档:
按照以下步骤设置 SSH 端口转发,然后通过本地浏览器访问您的 JupyterLab 会话:
-
在 Cloud Shell 或安装了 Cloud SDK 的本地环境中键入以下命令。
gcloud compute ssh --project PROJECT_ID \ --zone ZONE \ INSTANCE_NAME -- -L 8080:localhost:8080
替换以下内容:
-
PROJECT_ID
:您的项目 ID -
ZONE
:您的实例所在的 Google Cloud 地区 -
INSTANCE_NAME
:您的实例名称
-
-
如果您在本地计算机上运行该命令,请访问 https://localhost:8080 以访问 JupyterLab。
如果使用 Cloud Shell,请通过端口 8080 上的 Web 预览访问 JupyterLab。可以在 Cloud Shell 任务栏的右上角找到 Web 预览按钮 Web 预览按钮。
如果您正在运行 Notebooks 实例,请转到 Notebooks page 并单击实例名称。您应该会看到一种通过 Cloud Shell 或 SSH 进行连接的方式。如果您正在运行 DataProc JupyterHub 集群,则需要在 kubernetes workloads 中查找您的 Pod。在 pod 页面上,您应该有一个菜单图标,允许您通过 KUBECTL 进行 SSH 访问。