连接到远程服务器上的docker中运行的jupyter笔记本

问题描述 投票:1回答:2

我在本地计算机上建立连接到我在远程服务器上运行的jupyter笔记本实例时遇到问题。

到目前为止我做了什么:

我用ssh username@remoteHostIp连接到远程服务器

我运行docker container ls以确保我的容器尚未运行

现在我用docker run -it -p 8888:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning开始我的容器

我现在在我的容器中使用终端并启动一个无浏览器的jupyter笔记本实例

jupyter notebook --no-browser --port=8889 --allow-root

它成功启动:

The Jupyter Notebook is running at:
[I 11:14:51.979 NotebookApp] system]:8889/

现在我在本地计算机上启动另一个shell并创建一个ssh隧道:

ssh -N -f -L localhost:8888:localhost:8889 username@ remote_host_name

我的shell在几秒钟后返回以下内容:

channel 2: open failed: connect failed: Connection refused
channel 2: open failed: connect failed: Connection refused
channel 2: open failed: connect failed: Connection refused

我无法使用localhost访问jupyter笔记本:8888 /或localhost:8889 /

当我在docker容器外部的远程服务器上运行jupyter notebook并创建ssh隧道时,一切正常。

一些附加信息:远程服务器:分销商ID:Ubuntu描述:Ubuntu 16.04.3 LTS版本:16.04代号:xenial

我的本地机器在osx mojave上运行

docker jupyter-notebook ssh-tunnel
2个回答
0
投票

我通过连接到删除服务器并检查docker container ip adress:docker inspect <container_name>来解决自己的问题。然后我使用ip地址来创建ssh隧道:

ssh -N -f -L localhost:8889:dockerContainerIpAdress:8889 username@ remote_host_name

现在我可以使用localhost:8889连接到本地浏览器中的jupyter笔记本


0
投票

首先,您应该使用连接到远程服务器

ssh username@remoteHostIp

连接到它后,你应该运行docker container

docker run -it -p 8080:8888 -p 6006:6006 -v ~/:/host waleedka/modern-deep-learning

我在考虑这里端口8888是jupyter笔记本端口,8080是远程服务器端口

现在,在本地计算机上打开一个新的终端窗口,使用以下选项再次通过SSH连接到远程计算机以设置端口转发。

ssh -N -L localhost:8000:localhost:8080 username@remoteHostIp

我在考虑这里端口8000是我的本地机器端口和8080,因为我上面说的是远程服务器端口已经

现在通过本地浏览器访问远程jupyter服务器。打开浏览器并转到:

localhost:8000
© www.soinside.com 2019 - 2024. All rights reserved.