代码随走随写!Jupyter Notebook+cpolar 让你的编程工作台 “装进口袋”

Jupyter Notebook 是一款能将代码、文字说明和图表无缝融合的工具,支持 Python、R 等 40 多种语言实时运行,就像一个 “会计算的笔记本”。它特别适合数据分析者做模型迭代、学生写编程作业、老师做代码演示,优点在于能边写代码边记录思路,结果实时可见,团队还能共享文件一起修改,比单独用文档加代码文件高效多了😊。

用 Jupyter 时发现,它的 “实时演算” 功能很实用,比如写数据分析代码,输完一行就能看到图表结果,不用等全部写完再调试。但要注意,本地部署时最好固定好 Python 环境版本,不然换台电脑打开同一个文件,可能因为依赖包版本不同报错。另外,默认的 token 登录虽然安全,但记起来麻烦,尽早改成密码登录更方便。

不过,Jupyter 默认只能在局域网内用,这就有点不方便了。比如在实验室用台式机写了一半代码,回宿舍想用笔记本接着弄,就得重新配置环境;团队里有人在外地,想远程帮忙改改代码,因为不在一个网络,只能传文件来回折腾,实时协作根本做不到。

这时候如果和 cpolar 结合,问题就解决了。不用申请公网 IP,也不用折腾服务器,简单设置一下,就能给 Jupyter 生成一个公网访问链接。不管是在咖啡馆、地铁上,还是异地的同事,都能通过这个链接访问你的工作台,而且链接还能加密,不用担心代码泄露,真正实现了 “哪里有网,哪里就能写代码”。

下面就是详细的安装流程,请参阅。

本文中使用的操作系统为Ubuntu 22.04

1. 安装Docker步骤

添加Docker源

# Add Docker's official GPG key:sudoapt-getupdatesudoapt-getinstallca-certificatescurlgnupgsudoinstall-m 0755 -d /etc/apt/keyringscurl-fsSL https://download.docker.com/linux/ubuntu/gpg|sudogpg --dearmor -o /etc/apt/keyrings/docker.gpgsudochmoda+r /etc/apt/keyrings/docker.gpg# Add the repository to Apt sources:echo\"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(./etc/os-release&&echo"$VERSION_CODENAME")stable"|\sudotee/etc/apt/sources.list.d/docker.list>/dev/nullsudoapt-getupdate

安装 Docker 包

sudoapt-getinstalldocker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通过运行映像来验证 Docker 引擎安装是否成功

sudodockerrun hello-world

此命令下载测试映像并在容器中运行它。当容器运行,它打印确认消息并退出。

2. 选择与拉取镜像

本教程中我们以jupyter/base-notebook这个基础版本镜像为例,进行镜像拉取。

执行命令:

sudo docker pull jupyter/base-notebook

执行命令后稍等一会儿就可以看到jupyter/base-notebook镜像已经拉取完毕。

执行命令:

sudo docker images

可以看到本地所有镜像,其中就有刚才拉取的jupyter/base-notebook镜像。

3. 创建容器

在拉取了Jupyter镜像后,我们就可以使用Docker创建容器来运行Jupyter Notebook了。

执行命令:

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

即可创建一个在后台运行的名为jupyter的容器,并将本地端口8888映射到容器的8888端口。

执行命令:

sudo docker ps

可以看到容器已经成功运行了。

4. 访问Jupyter工作台

此时,我们在浏览器中输入本机ip地址加端口即可访问Jupyter工作台:

http://127.0.0.1:8888

可以看到,顶部显示我们需要输入密码或者token进行登录。

token获取可以在终端中执行命令sudo docker logs 你的Jupyter容器id进行查看:

在显示的信息底部,可以看到一长串的字符构成的token,下图红框中67f4开头,ec38结尾的这个即是。

将这串字符复制下来,回到刚才打开的浏览器中进行粘贴:

点击log in登录,即可进入Jupyter工作台:

如上图显示,则表示已经成功登录。

不过由于token不方便记忆,所以可以登出后重新登录界面,使用token来设置或修改密码,之后即可使用密码登录。

确认后,会自动跳转到工作台界面:

点击功能导航中的File,选择Log Out,即可登出,之后再登录工作台就可以在顶部输入刚才设置的密码登录了。

5. 远程访问Jupyter工作台

现在,我们可以在本地使用浏览器登录使用Docker部署的Jupyter工作台了。

在工作台中选择Notebook下的Python3(ipykernel),即可创建一个.ipynb文件,开始愉快的使用Jupyer Notebook了。

不过我们只能在本地使用刚刚部署的Jupyer Notebook,如果身在异地,想要远程访问在本地部署的Jupyer Notebook容器,但又没有公网ip怎么办呢?

我们可以使用cpolar内网穿透工具来实现无公网ip环境下的远程访问需求。

5.1 内网穿透工具安装

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl-L https://www.cpolar.com/static/downloads/install-release-cpolar.sh|sudobash
  • 向系统添加服务
sudosystemctlenablecpolar
  • 启动cpolar服务
sudosystemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

5.2 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:jup
  • 协议:http
  • 本地地址:8888
  • 域名类型:随机域名
  • 地区:选择China Top

点击创建

创建成功后,打开左侧在线隧道列表,查看刚刚创建隧道后生成两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址复制到浏览器访问即可。

可以看到,能够正常公网远程访问。

输入密码后即可实现在公网远程登录本地内网部署的Jupyer Notebook工作台界面。

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的http公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问Jupyter Notebook的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定二级子域名地址的方式来远程访问。

5.3 使用固定二级子域名地址远程访问

接下来保留一个固定http地址,登录cpolar官网,点击左侧的预留,找到保留二级子域名,为远程服务器连接保留一个固定二级子域名地址:

  • 地区:选择China VIP
  • 描述:即备注,可自定义,本例使用jup123

点击保留

地址保留成功后,复制生成的公网地址,打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们刚才创建的随机公网地址隧道jup,点击编辑

修改隧道信息,将刚才保留成功的固定http地址:jup123配置到隧道中

  • 域名类型:选择二级子域名
  • 预留的http地址:复制粘贴官网保留成功的地址,本例中为:jup123
  • 地区选择:China VIP

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新为了两个固定二级子域名地址。

接下来与之前的操作一样,可以在其他电脑(异地)上,使用任意一个固定二级子域名地址复制到浏览器访问即可。

如上图所示,即为配置成功。我们现在就能在公网使用cpolar内网穿透工具生成的永久不变的固定二级子域名,使用任意浏览器远程访问Jupyter Notebook工作台了,无需购买域名服务器,也不用设置路由器那么麻烦,轻松实现大家远程访问本地服务的需求!

Jupyter Notebook 的交互式编程优势,加上 cpolar 的内网穿透能力,完美弥补了本地部署的访问局限。无论是学生跨场景完成编程作业,还是团队异地协同开发,这种搭配都让编程工作更灵活高效,让代码创作不再受地点限制。

cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1135766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thinkphp-Laravel+uniapp微信小程序的外卖点餐点单系统 商家协同过滤

目录外卖点餐系统协同过滤技术摘要技术架构实现要点应用效果与优化方向项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理外卖点餐系统协同过滤技术摘要 基于ThinkPHP-Laravel框架与UniApp开发的外卖点餐小程序系统,通过商家协同过滤算法…

PDF-Extract-Kit持续集成:CI/CD流水线配置

PDF-Extract-Kit持续集成:CI/CD流水线配置 1. 背景与目标 1.1 项目背景 PDF-Extract-Kit 是一个基于深度学习的 PDF 智能内容提取工具箱,由开发者“科哥”二次开发构建。该工具集成了布局检测、公式识别、OCR 文字提取、表格解析等核心功能&#xff0…

5个高可用图像转视频开源镜像推荐:免配置快速上手

5个高可用图像转视频开源镜像推荐:免配置快速上手 🌟 引言:为什么选择预构建镜像? 在AI生成内容(AIGC)领域,图像转视频(Image-to-Video, I2V) 正成为创意表达和内容生产…

毕业生实习与就业管理系统的设计与实现毕业论文+PPT(附源代码+演示视频)

文章目录毕业生实习与就业管理系统的设计与实现一、项目简介(源代码在文末)1.运行视频2.🚀 项目技术栈3.✅ 环境要求说明4.包含的文件列表(含论文)数据库结构与测试用例系统功能结构后台运行截图项目部署源码下载毕业生…

Thinkphp-Laravel+uniapp微信小程序的文明城市创建平台设计与实现

目录文明城市创建平台的设计与实现项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理文明城市创建平台的设计与实现 该平台基于ThinkPHP-Laravel框架与UniApp技术栈构建,旨在通过微信小程序载体推动文明城市创建工作的数字化、智能化转型…

CLIP图文匹配微调实战

💓 博客主页:借口的CSDN主页 ⏩ 文章专栏:《热点资讯》 CLIP图文匹配微调实战:从理论到垂直领域落地目录CLIP图文匹配微调实战:从理论到垂直领域落地 引言:为何CLIP微调是图文理解的“关键一跃” CLIP微调的…

PDF-Extract-Kit新闻稿处理:自动提取5W1H要素,媒体人必备

PDF-Extract-Kit新闻稿处理:自动提取5W1H要素,媒体人必备 这个工具能帮你解决什么问题 作为一名媒体编辑,每天面对堆积如山的PDF新闻稿,你是否经常遇到这些困扰: - 需要手动从几十页文档中找出关键人物、时间、地点 …

Thinkphp-Laravel+uniapp微信小程序的校园外卖点餐点单系统 商家协同过滤

目录校园外卖点餐系统摘要项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理校园外卖点餐系统摘要 基于ThinkPHP-Laravel框架与UniApp开发的校园外卖点餐系统,整合了商家协同过滤算法,为高校师生提供智能化的餐饮服务解决方案…

基于大数据爬虫+Hadoop的日漫推荐系统设计与实现

选题背景 近年来,日本动漫(日漫)在全球范围内的受欢迎程度持续攀升,其独特的艺术风格、丰富的剧情设定以及多元化的题材吸引了大量观众。随着流媒体平台的普及,日漫的传播渠道更加多样化,用户可以通过Netfl…

西门子SMART200 PLC与托利多电子秤自由口通讯程序实战

西门子SMART200 PLC和托利多电子称自由口通讯程序。 通俗易懂,注释全,自己编写的,实际项目应用的。在实际工业项目中,经常会遇到需要将西门子SMART200 PLC与托利多电子秤进行通讯的需求,以获取精准的称重数据并进行后续…

PDF-Extract-Kit保姆级指南:布局检测参数详解

PDF-Extract-Kit保姆级指南:布局检测参数详解 1. 引言 在处理PDF文档时,尤其是学术论文、技术报告等复杂版式文件,如何高效准确地提取其中的文字、公式、表格和图像信息,一直是自动化文档解析的核心挑战。PDF-Extract-Kit 正是为…

导师不会说的8个AI写论文神器,1小时万字全学科覆盖!

90%的学生还在为论文熬夜秃头,殊不知顶级的学术大牛和聪明的同门,早已在用这些“信息差”工具悄悄开挂。今天,我就来揭秘那些藏在导师电脑里、学术圈内秘而不宣的AI论文“黑科技”,让你彻底告别写作焦虑,效率直接拉满&…

NifSkope终极指南:专业3D模型文件编辑的完整解决方案

NifSkope终极指南:专业3D模型文件编辑的完整解决方案 【免费下载链接】nifskope A git repository for nifskope. 项目地址: https://gitcode.com/gh_mirrors/ni/nifskope NifSkope是一款功能强大的开源3D模型编辑器,专门用于解析和处理NetImmers…

某在线教育平台如何用Sambert-HifiGan提升用户体验,留存率提升40%

某在线教育平台如何用Sambert-HifiGan提升用户体验,留存率提升40% 背景与挑战:语音合成的“情感缺失”困局 在当前在线教育赛道中,用户注意力分散、学习体验同质化已成为制约平台增长的核心瓶颈。尤其在AI驱动的智能教学场景下,传…

ImageGlass:免费开源的轻量级图像浏览器终极指南

ImageGlass:免费开源的轻量级图像浏览器终极指南 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows自带的图片查看器功能单一而烦恼吗?I…

Thinkphp-Laravel+uniapp微信小程序的研学旅游服务系统的设计与实现

目录摘要项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要 研学旅游服务系统基于ThinkPHP-Laravel框架与UniApp技术栈开发,整合微信小程序实现多端协同服务。系统采用B/S架构,后端通过Laravel提供RESTful API接口&#…

用Sambert-HifiGan为电子导购添加个性化语音

用Sambert-HifiGan为电子导购添加个性化语音 引言:让电子导购“声”入人心 在智能零售与电商服务日益普及的今天,电子导购系统正从“看得见”向“听得清、有情感”演进。传统的机械式语音播报已难以满足用户对自然交互体验的需求。如何让机器说话不仅清晰…

基于粒子群算法的储能优化配置探索

基于粒子群算法的储能优化配置 建立了储能的成本模型,包含运行维护以及容量配置成本,然后以其成本最小为目标,得到其最优运行计划,最后通过其运行计划确定储能的容量。在当今电力领域,储能系统的优化配置至关重要。今天…

ue 蓝图 调用 c++ websocket 音频

目录 ue 中,打开关卡蓝图, ue 中,打开关卡蓝图, 添加变量,类型直接 web socket client 。 WebSocketClient.h #pragma once#include "CoreMinimal.h" #include "UObject/Object.h" #include "IWebSocket.h" #include "WebSocketClie…

Thinkphp-Laravel+uniapp微信小程序高校学生兼职系统的设计与实现

目录摘要项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要 随着移动互联网的快速发展,高校学生兼职需求日益增长,传统兼职信息发布方式存在信息不对称、管理效率低等问题。基于ThinkPHP-Laravel框架与UniApp技术&#x…