当前位置: 首页 > 知识库问答 >
问题:

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

罗祺
2023-03-14

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

到目前为止我所做的:

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

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

现在我用docker run-it-p8888:8888-p6006: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:8888/或localhost:8889/访问jupyter笔记本

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

一些附加信息:远程服务器:分发服务器ID:Ubuntu描述:Ubuntu 16.04。3 LTS发行版:16.04代号:xenial

我的本地机器正在osx moave上运行


共有2个答案

陈博容
2023-03-14

通过连接到remove服务器并检查docker容器ip地址,我自己解决了这个问题:docker inspect

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

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

韶弘壮
2023-03-14

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

ssh username@remoteHostIp

连接到它之后,您应该使用

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
 类似资料:
  • 我运行一个jupyter笔记本在一个docker容器(ubuntu)上运行一个远程机器(亚马逊p2)。我想通过我的浏览器(http://localhost:8883/)访问笔记本,但我得到: 我的ssh配置: 我正在运行容器(在远程机器上): 在我运行的docker容器上: 我能够连接到远程机器上运行的笔记本(不在docker容器中)。 如何从浏览器连接到docker机器上运行的笔记本?

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我想在我可以访问的计算机上运行服务器,并且已经能够在本地运行笔记本计算机。 如何设置以便可以 远程 访问? 问题答案: 如果您具有ssh访问将运行服务器的计算机的权限,请执行以下步骤: 1)在将运行 服务器 的机器上,执行: 2)

  • 在WSL 2上,远程访问运行在docker容器中的jupyter笔记本是否有一般方法? 仅供参考,WSL2(Ubuntu 20.04)是按照以下说明安装的: https://ubuntu.com/blog/getting-started-with-cuda-on-ubuntu-on-wsl-2

  • 已在远程linux计算机上安装了Anaconda Python。 在本地Windows上使用puty登录到远程linux机器以远程启动Ipython笔记本。它从8888端口开始。 遥远的_user@remote_host$ipython笔记本电脑--无浏览器--端口=8888 现在我需要在本地浏览器上访问这个笔记本。尝试过做ssh隧道。 C:\用户\windowsUser SSH:连接到主机rem

  • 问题内容: 我想对redis.conf进行一些更改,以便每当我键入redis-cli时,它就会将我连接到安装在远程服务器上的redis。 我知道我们可以通过以下方式连接到安装在远程服务器上的redis: 但是实际上,我有一些bash脚本,在那些脚本中,我在很多地方都使用过redis-cli。因此,我不想以每个文件中的redis-cli -h’IP- Address-Of-Server’替换redi

  • 问题内容: 我已经使用Ubuntu 10.10服务器上http://redis.io/topics/quickstart上的快速入门指南中的说明成功安装了Redis 。我将服务作为dameon运行(因此可以通过init.d运行) 该服务器是具有内部和外部IP的Rackspace Cluster的一部分。主机在端口6379上运行(Redis的标准配置) 我在iptables中添加了一行,以允许来自端