在 Docker 容器中将 Spyder 连接到远程 Jupyter Notebook

Mr *_*uid 8 spyder docker jupyter-notebook

我一直在尝试将 Spyder 连接到在远程服务器上运行的 docker 容器,但一次又一次地失败。这是我想要实现的目标的快速图表:

“我令人沮丧的情况”

目前我正在通过 ssh 在远程机器上启动 docker 容器

docker run --runtime=nvidia -it --rm --shm-size=2g -v /home/timo/storage:/storage -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group --ulimit memlock=-1 -p 8888:8888 --ipc=host ufoym/deepo:all-jupyter
Run Code Online (Sandbox Code Playgroud)

所以我在端口 8888 上转发。然后在我正在运行的 docker 容器内

jupyter notebook --no-browser --ip=0.0.0.0 --port=8888 --allow-root --notebook-dir='/storage' 
Run Code Online (Sandbox Code Playgroud)

好的,现在是 Spyder 部分 - 根据此处的说明,我转到~/.local/share/jupyter/runtime,在其中找到以下文件:

kernel-ada17ae4-e8c3-4e17-9f8f-1c029c56b4f0.json  nbserver-11-open.html  nbserver-21-open.html  notebook_cookie_secret
kernel-e81bc397-05b5-4710-89b6-2aa2adab5f9c.json  nbserver-11.json       nbserver-21.json
Run Code Online (Sandbox Code Playgroud)

不知道拿哪一个,我把它们全部复制到我的本地机器上。

我现在转到 Consoles->Connect to an Existing Kernel,这给了我“Connect to an Existing Kernel”窗口,我按原样填写(当然使用我的实际远程 IP 地址):

“连接到现有内核”

(这里我为 选择了第一个 json 文件Connection info:)。我按下回车键,Spyder 变暗并崩溃。

“Spyder 变黑并崩溃”

无论我选择哪个连接信息文件,都会发生这种情况。所以,我的问题是:

1:我做的这些都正确吗?我发现很多有关如何连接到远程服务器的指令,却远没有那么对于专门连接到笔记本jupyter在码头工人在远程服务器上。

2:如果是,那么我还能做些什么来解决我遇到的问题?

我还应该注意,通过本地计算机上的浏览器连接到 Jupyter Notebook 没有问题。只是我更愿意使用 Spyder 作为我的 IDE。

提前谢谢了!

小智 3

这与其说是解决方案,不如说是解决方法,但 sshfs 可能会有所帮助

使用 sshfs 将远程计算机的主目录挂载到本地目录上,然后 Spyder 的本地副本可以像编辑本地文件一样编辑该文件。

sshfs remotehost.com:/home/user/ ./remote-host/

当您在 Spyder 中点击“保存”时,通常需要大约半秒的时间才能将更改上传到 AWS 主机,这对我来说是可以接受的延迟。当需要运行代码时,通过 ssh 进入远程计算机,然后从 IPython shell 运行代码。它并不优雅,但确实有效。

我并不认为这是最好的答案,但也许您可以将其用作权宜之计。