打开 JupyterLab
打开按钮
部署一个启动模式为 jupyter 的模板,等实例进入 running,然后从实例中打开它。连接标签页上有一个打开 JupyterLab 按钮。它会在新标签页中直接把你带进一个已通过认证的会话。
这个按钮是官方支持的进入方式。不要自己拼地址,也不要依赖书签:实例发布所在的主机和端口在停止再启动后可能会变,书签随后就指向了空处。
如果按钮不见了,检查你部署的模板的启动模式。只有 jupyter 会启动 notebook 服务器。ssh 模式的实例给你的是一个 shell,不是 notebook。参见启动模式。
关于令牌
访问令牌由平台在实例部署时生成并下发给容器,容器以该令牌作为唯一凭据启动 JupyterLab。你无法选择它,它也不会作为独立字段出现在任何 API 响应中。
由此有两个结论:
- 从控制台打开 JupyterLab。按钮会替你带上令牌,你不必自己拼地址。
- 自己在环境中设置
JUPYTER_TOKEN不会有任何效果。平台的环境覆盖层始终优先于租用者提供的值,你填的内容会被覆盖。GPU_COUNT同理。参见环境变量。
你的文件在哪里
JupyterLab 的根目录由 JUPYTER_DIR 指定,默认是 /workspace。文件浏览器无法访问该目录以上的层级,所以你想在侧边栏里看到的东西都要放在它下面。
| 设置项 | 默认值 | 来源 |
|---|---|---|
JUPYTER_DIR | /workspace | 模板的 jupyter_dir 字段 |
JUPYTER_PORT | 8080 | jupyter 模式发布的容器端口 |
JUPYTER_LAB | true (Lab) | 模板的 use_jupyter_lab 字段;设为 false 则提供经典版 notebook |
/workspace 位于你在部署时选定容量的那块磁盘上,因此它能在停止和启动之间保留,并在销毁时被删除。写到容器里其他位置的文件也在同一块磁盘上,命运完全一样——这个目录只是一种约定,不是单独的卷。
标签页在服务器就绪之前就打开了
实例一报告 running,打开 JupyterLab 按钮就会出现。notebook 服务器要稍晚一点才绑定端口,所以点得太早可能会落到一个浏览器错误页——连接被拒绝,或者页面一直加载不完。
等几秒钟再刷新标签页。基础镜像会先启动 JupyterLab,然后才运行模板的 onstart 脚本,所以拖住 notebook 服务器的不会是耗时较长的 onstart。如果刷新仍然失败,通过 SSH 查看服务器自己的日志:
tail -f /var/log/superheat/jupyter.log
证书警告
JupyterLab 通过 HTTPS 提供服务,用的是容器自己生成的证书,因此浏览器会警告说无法验证该站点。在一个刚开出来的实例上,这个警告是意料之中的。加密本身在正常工作;只是身份无法验证,因为没有哪家公共证书机构会为一台几分钟前才诞生的机器签发证书。