金融量化AI研究--Claude, Python

这里用来记录一些本人运用Claude编程的心得或笔记

导航

我如何在Docker布署jupyterlab

起因:为啥呢?因为平时我要在三台电脑上切换使用,总要来回换环境,有时那个环境还总出这样那样的问题,有的pkgs又要重新安装!
实在是受不了了!所以我打算在NAS上自己安装JupyterLab!


Jupter介绍
网址:https://jupyter.org/about

Jupyter 项目是一个非营利性开源项目,诞生于2014 年的IPython 项目,随着它的发展,它支持跨所有编程语言的交互式数据科学和科学计算。Jupyter 将始终是 100% 开源软件,免费供所有人使用,并根据修改后的 BSD 许可证的自由条款发布。
在线试用。官方提供在线试用地址:https://jupyter.org/try ,可以考虑先试用再安装。

JupyterLab是最新的基于网络的笔记本、代码和数据的互动开发环境。它灵活的界面允许用户配置和安排数据科学、科学计算、计算新闻和机器学习方面的工作流程。使用模块化的设计方便扩展和丰富功能。

JupyterLab项目地址

https://github.com/jupyterlab/jupyterlab
https://jupyterlab.readthedocs.io/en/latest/

JupyterLab也有桌面版软件,可以从下面项目地址Releases中进行下载安装(理论上也依赖于Python):
https://github.com/jupyterlab/jupyterlab-desktop

项目在此,但我要docker安装,在它的主页上是这么写的:
https://jupyterlab.readthedocs.io/en/latest/getting_started/installation.html#docker

If you have Docker installed, you can install and use JupyterLab by selecting one of the many ready-to-run Docker images maintained by the Jupyter Team. Follow the instructions in the Quick Start Guide to deploy the chosen Docker image.
然后,我就被传送到这里:https://github.com/jupyter/docker-stacks
还是回到了Jupyter Notebook,光是这个复杂的关系就让人头晕:


具体网址:https://quay.io/organization/jupyter

选定要安装的版本

看上面这两副图就差不多明白了,所以我最后还是选了:jupyter/minimal-notebook
命令:docker pull quay.io/jupyter/minimal-notebook
或者从NAS里的Container Manager直接搜索:jupyter

明明写的240G,为啥下载下来就成了1.45G?我也搞不明白,一不小心,顺手还下了个别人的JupyterLab, 好家伙7.78G

Running a Container

最近生成的容器有点多,都不知道哪些端口被分配出去了,所以还是先命令查看一下:netstat -tuln
显示当前网络连接和监听端口,若要查看特定端口如 80 端口的占用情况,可使用netstat -tuln | grep :80。
如果是要找占用特定端口的 Docker 容器,可使用docker ps --filter "publish=端口号",如docker ps --filter "publish=80"。

我在NAS上建了一个用来保存Jupyter代码的目录:/volume3/MyCode3/NASJupyter

然后开始看图设置吧:

By default, jupyter’s root_dir is /home/jovyan. So, new notebooks will be saved there, unless you change the directory in the file browser.


最后就是“环境”中,可以加上一个环境变量“JUPYTER_ENABLE_LAB=yes”这样我们就可以默认启动Jupyter lab,而不是Jupyter notebook。

运行之后,提示错误

    PermissionError: [Errno 13] Permission denied: '/home/jovyan/.local'
    PermissionError:[Errno 13]权限被拒绝:'/home/jovyan/. local

解决方法一(试了不行):

jupyter镜像有两个环境变量,NB_UID和NB_GID,将他们全设置成0,然后在启动docker时添加--root参数,才能正确的切换jovyan的id,这样就可以无缝使用宿主机的目录和文件了。

解决方法二(成功的方法)

参考了官网的docker run命令之后,发现他的命令很简洁,我一运行就成功了,于是几番测试之下,我稍稍修改,用container manager的项目管理成功生成了容器
我在NAS上建了一个用来保存Jupyter代码的目录:/volume3/MyCode3/NASJupyter,然后SSL连上NAS,运行了以下命令(这是我把错误代码发给DEEPSEEK,它教我的):
sudo chmod -R 777 /volume3/MyCode3/NASJupyter
主要参考文档:
https://jupyter-docker-stacks.readthedocs.io/en/latest/using/common.html
https://cloud.tencent.com/developer/ask/sof/1162019
https://github.com/jupyter/docker-stacks/issues/885

成功的代码如下(YAML内容):

services:
  minimal-notebook:
    image: docker.1ms.run/jupyter/minimal-notebook:latest
    container_name: minimal-notebook
    restart: unless-stopped
    ports:
      - "12000:8888"
    working_dir: /home/jovyan/
    volumes:
      - /volume3/MyCode3/NASJupyter:/home/jovyan
    environment:
      - NB_USER=jovyan
      - CHOWN_HOME=yes
      - CHOWN_EXTRA_OPTS='-R'
    user: root
    stdin_open: true
    tty: true

进入我设置的工作目录,一看,里面只有一个文件,其他文件都去哪儿了?

又去NAS里看了一下,也没看出啥

PS(我没试,但可以先留着备用):
更加详细的目录映射设置,可以参考这位帅哥的:https://juejin.cn/post/7358665606914801664
不会自己写RUN命令的,可以在这里生成:https://docker.aityp.com/docker/run

容器运行稳定,没有再出提示错误啦!太棒了!
打开浏览器,输入:http://192.168.123.104:12000(换成你自己的NAS的IP)

密码设置并登录

点击创建好的容器,打开终端机,

输入jupyter server password,回车,
再输入你的密码,回车,
再二次确认密码,回车,出现下图中的提示则密码设置成功。
[JupyterPasswordApp] Wrote hashed password to /home/jovyan/.jupyter/jupyter_server_config.json

虽然密码是设置成功了,但是我回到刚才的登录界面,这个密码居然提示不正确?也不知道啥原因,继续。。。
终端机中输入命令:jupyter server list

把这个token代码COPY到刚才的登录界面中访问:

妈呀,我终于进来了啊!

同时还可以再输入pip install jupyterlab-language-pack-zh-CN,安装一下Jupyter Notebook的中文包,后续登录后台可以切换成中文使用。(此处有点小BUG,提示用户权限不足)

生成config文件:jupyter lab --generate-config
Writing default config to: /home/jovyan/.jupyter/jupyter_lab_config.py

NAS下查找jupyter相关文件/夹:find / -name "jupyter" 2>/dev/null

第三次尝试

由于以上在pip install时提示权限不足,让我觉得有点不对劲。登录后切换theme也不行,可能还是用户权限没有处理好。
于是就有了第三次尝试,这次我直接用image运行


这次就成功了

使用docker ps,查看容器的ID

再使用docker exec -u 0 -it 1a57d616243e bash 命令来进入容器


进入容器后看到:

和在容器中直接运行终端机,看到的是一样的

Further

jupyterlab 不能正常启动

按照流程先clean再build,代码如下:
jupyter lab clean
jupyter lab build

image

使用Code Server

eg. : 编程的思路还没确定好,那么选择Jupyter比较好;如果代码已经确定了,效果验证非常不错,甚至还有很多可以复用的部分,那这时选择Code Server来保存比较好。
老Q就教大家快速地如何部署一个Code Server!
https://cloud.tencent.com/developer/news/1029285

JupyterLab十个有用的技巧

https://cloud.tencent.com/developer/news/988306

Jupyter AI, 这个插件让 Jupyter Lab 起飞

https://cloud.tencent.com/developer/article/2322966

Other GPU-accelerated notebooks

https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html#image-relationships

posted on 2025-04-24 01:55  chengjon  阅读(952)  评论(0)    收藏  举报