无公网IP 外网访问 Jupyter Notebook

embedded/2025/2/7 14:01:38/

Jupyter Notebook 是一个开源的Web应用程序,允许用户创建和共享包含实时代码、方程式、可视化和叙述文本的文档。它支持超过40种编程语言。

 

本文将详细的介绍如何用 Docker 在本地安装部署 Jupyter Notebook,并结合路由侠内网穿透实现外网访问本地部署的 Jupyter Notebook。

第一步,本地部署安装 Jupyter Notebook

1,输入执行下面命令拉取 Jupyter 镜像。

docker pull jupyter/base-notebook

2,输入执行下面命令启动Jupyter镜像。

docker run -d -p 8888:8888 jupyter/base-notebook

3,用 docker ps 查看镜像。
 


4,在浏览器输入 http://本地IP:8888,显示下面主界面,这里需要密码或者 token 才能登录。
 


5,用 docker logs 容器ID 或者容器名来获取token,执行命令后往下拉,可以看到token,把红色下划线的部分复制下来。
 

 


6,把复制下来的token粘贴到登录框中,点击【Log in】登录进去。
 


7,这就是Jupyter工作台了。
 


8,可以按下图在File里面找到Log Out退出登录。


9,由于token不方便记,可以在重新登录界面,使用token来设置新密码,之后就可以直接用密码登录了。

第二步,外网访问本地的 Jupyter Notebook

安装路由侠内网穿透。

1,当前未提供网页管理,需要先在任意一台 Windows 机器安装路由侠 Windows 版本,用作跨机器管理。

2,在路由侠客户端主界面,进入“设备管理”,点击右下角的“添加设备”,此时可查看到对应的安装码,此安装码用于将设备添加到对应账号下,可选中后复制。

 

 

 

3,可使用以下 Docker 命令拉取镜像:

docker pull luyouxia/lyx

注意,如果因网络问题,镜像无法拉取,可直接下载后导入:

wget https://dl.luyouxia.com:8443/v2/lyx-docker-i686.tar
docker load -i lyx-docker-i686.tar

4,然后使用该镜像启动容器

docker run --name lyx -it --restart=always --net=host -e code=这里填写安装码 luyouxia/lyx

5,此时,需要等待下载和安装的过程,如果一切正常,最终可以看到一些输出,并且可以看到如下提示:

[Device] Logged in. Token: ....

这就表示安装成功了。

当前 Linux 终端这边,如果是使用的上面的命令,Docker 是运行在前台,此时可以按住 Ctrl+C ,退出路由侠,容器也将退出。现在可以使用以下命令将其放入后台持续运行:

docker start lyx

注意如果容器删除,重新 docker run, 将创建为新的设备。

需要注意的是,因为容器参数已经添加了 --restart=always,这样开机就会自动启动,不需要再手动启动路由侠了。

6,现在回到 Windows 这边设备列表,点击右上角的×返回主界面,再次进入,就可以找到这个设备,可以修改名称。

7,回到主界面,点击【内网映射】。

8,注意右上角的设备名称下拉框,这里选中刚刚添加的设备名称,此时在这个界面上添加的映射,就属于刚刚这个设备。添加或修改一般需要等待30秒,容器中的路由侠进程就会更新并加载。切换好设备后,点击【添加映射】。

9,选择【原生端口】。

10,在内网端口里填写端口 8888 后点击【创建】按钮,如下图。

11,创建好后,就可以看到一条映射的公网地址,鼠标右键点击【复制地址】。

12,在外网的浏览器的地址栏输入复制的外网地址就可以看到本地部署的 Jupyter Notebook 界面了。输入密码登录即可。

 


http://www.ppmy.cn/embedded/160315.html

相关文章

02-合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组…

实现一个 LRU 风格的缓存类

实现一个缓存类 需求描述豆包解决思路:实现代码:优化11. std::list::remove 的时间复杂度问题2. 代码复用优化后的代码优化说明 优化21. 边界条件检查2. 异常处理3. 代码封装性4. 线程安全优化后的代码示例优化说明 DeepSeek(深度思考R1&…

2023年总结感悟

农民用铁锹挖土,和工程师用电流表测试电流其实是一样的。肌肉力量是男孩信息的源泉74岁时一个门槛,老人看一面就少看一面对于老人来说可以自己吃饭,自己走路已经很不错了,若是由于疾病预后很差,不如有尊严的离开世界护…

HarmonyOS:给您的应用添加通知

一、通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可以通过通知接口发送通知消息,用户可以通过通知栏查看通知内容,也可以点击通知来打开应用,通知主要有以下使用场景: 显示…

【Redis】主从模式,哨兵,集群

主从复制 单点问题: 在分布式系统中,如果某个服务器程序,只有一个节点(也就是一个物理服务器)来部署这个服务器程序的话,那么可能会出现以下问题: 1.可用性问题:如果这个机器挂了…

C语言switch case语句详解(非常详细)

在C语言中,switch case 语句是一种多分支选择结构,用于根据变量的值执行不同的代码块。 相比于if else语句,switch case在处理多个固定值的条件判断时更加简洁和高效。本文将详细讲解switch case语句的用法、语法格式、实例代码、注意事项&a…

Hive修复分区

Hive修复分区 简介 Hive的MSCK REPAIR TABLE命令用于修复(即添加丢失的)表分区。通常用于那些已在HDFS中存在,但尚未在Hive元数据中注册的分区。 当你在HDFS文件系统中手动添加或删除分区目录,Hive并不会自动识别这些更改。为同步…

网络安全——Span 安全监控

SPAN释义: SPAN技术我们可以把交换机上某些想要被监控端口(以下简称受控端口)的数据流COPY或MIRROR一 份,发送给连接在监控端口上的流量分析仪,比如CISCO的IDS或是装SNIFFE工具的PC受控端口和 监控端口可以在同一台交…