linux服务器通过docker部署JupyterLab

一、前言

JupyterLab是集合了Jupyter notebook所有功能的在线IDE工具,并且JupyterLab可以通过web随时随地的访问。本次使用的机器是阿里云centos7,JupyterLab版本3.6.3。由于我个人的服务器部署的应用比较多,为了环境隔离(偷懒省事),使用docker部署比较方便。

二、部署步骤

1、拉取镜像

去docker hub搜索关于jupyter的镜像,有很多,可以自行选择,安装方式基本都是一样的。我选择的是jupyter/scipy-notebook

sudo docker pull jupyter/scipy-notebook #把镜像pull下来

2、创建挂载目录

这个目录是jupyter的文件目录,在jupyter上面的开发项目都会在这个目录下保存。为了防止权限问题,修改为777。

sudo mkdir -p /opt/jupyter/book
sudo chmod 777 /opt/jupyter/book

3、运行实例

JupyterLab的部署是比较简单的,直接用docker run就行了。具体部署细节,可以详细参考github

sudo docker run --name my-jupyter -d \
-p 8118:8888 \
-v /opt/jupyter/book:/home/jovyan \
jupyter/scipy-notebook

简单讲一下两个参数

  • -p 8118:8888 对外暴露的端口为8118,映射容器端口8888。根据自己需要,修改对外端口即可。
  • -v /opt/jupyter/book:/home/jovyan 其中/opt/jupyter/book就是第2步创建的挂载目录,而/home/jovyan是写死的,这个不能变,改了会拉起失败(亲测)。

4、访问地址(需要token)

一般docker拉起成功的话,通过你的IP+端口号,就可以访问jupyter了,访问地址 http://yourIP:8118

5、查询token

到了第4步你会发现,登录jupyter需要填写token,而且每次登录访问都需要token,相当麻烦。因此需要进一步设置。
首先要找到token,有两种方式:

① docker输入命令行查询token

sudo docker exec -it my-jupyter jupyter notebook list

② 通过访问docker的log日志获取

这个方式需要root账号权限,先进入docker镜像的目录:

cd /var/lib/docker/containers

找到对应的镜像目录,目录名是一连串的很长的字符串,在目录下找到对应的.log文件。
在log日志中找到以下行:

file

实际上,我是用第二种方式找到token的,第一个方式我总是查不到token,原因暂时不明。如果有大佬懂的,可以在评论留言,万分感谢。

6、修改jupyter密码

修改密码用以下语句,修改完后重启jupyter。

sudo docker exec -it my-jupyter jupyter notebook password
sudo docker restart my-jupyter

密码修改成功后,再通过网址访问jupyter,就不再需要token了。

三、关于JupyterLab的使用技巧

1、推荐浏览器用chrome

某些浏览器可能不显示运行按钮,如果遇到看不见顶部菜单栏和运行按钮等的情况,建议换一个浏览器访问。

2、常用的插件下载

用过jupyter notebook的朋友应该知道,很多便利的插件可以通过nbextensions找到,比如cell的底部显示运行时间,代码自动格式化等。但是jupyterlab是没有nbextensions。我们只能通过其他方式安装插件。
jupyterlab安装插件,可以从左侧菜单栏的extension manager,点击了enable后可以找到各种插件,但一般都是要通过pip安装。
jupyterlab可以通过新建一个terminal窗口,然后运行pip命令安装python的包,来实现插件的安装。
这里推荐一些好用的插件,各位朋友可以自行斟酌下载安装。

jupyterlab-language-pack-zh-CN    # 中文汉化包
jupyterlab-execute-time           # cell底部显示代码运行时间
jupyterlab-code-formatter         # 自动格式化代码
jupytext                          # ipynb\py\md文件互相转换
jupyterlab_spellchecker           # markdown拼写核对
@krassowski/jupyterlab-lsp        # 自动补全与跳转定义
@jupyterlab/github
@jupyterlab/git

四、总结

JupyterLab基本涵盖了jupyter notebook的所有功能,使用上没有很大差别。JupyterLab优势更多,比如通过web访问(无需重复配置环境)、同时多开窗口、能够打开更多的文件格式,如csv/json/pdf/markdown等;但同样也有劣势,比如插件安装不如jupyter notebook方便,插件的功能还不够完善等,还有如果编写大型项目,web在线编辑还是逊色一筹。

评论

  1. 1 年前
    2024-2-05 13:16:37

    好文,感谢!反馈下,复制一点点代码就有版权信息,copyright的限制字数可以调高点。。每句代码都要删୧(๑•̀⌄•́๑)૭

    • 博主
      德德
      1 年前
      2024-2-26 14:22:55

      感谢反馈,我近期内会优化

  2. GM
    11 月前
    2024-7-23 14:16:02

    直接在文章最下面加上版权信息就行了,复制代码不要加
    按照博客代码操作,要一个个删,很麻烦

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇