jupyter简介

jupyter是一个基于网页的交互式编程工具,用户可以在网页中输入代码、运行代码,代码结果也将显示在代码块的下方,极大的提高了我们编码的效率。

jupyter以.ipynd文档的形式存储代码,方便用户保存、分享。

目前支持julia、python、R等语言,这也是jupyter名称的由来。当然也可以通过安装扩展支持更多的语言。

使用docker compose快速部署

可以使用docker compose 在服务器或本机上快速部署jupyter服务。

创建jupyter文件夹,在jupyter文件夹内创建docker-compose.yml文件

mkdir jupyter_notebook && cd jupyter_notebook
vi docker-compose.yml

编写如下内容:

version: '3'

services:

  jupyter:

    image: jupyter/minimal-notebook

    volumes:

      - ./work:/home/jovyan/work

    ports:

      - 8888:8888

    container_name: jupyter_notebook

安装jupyter镜像并启动容器

sudo docker compose 

在启动页面,找到登录链接

如果是远程服务器,将127.0.0.1换成远程服务器地址即可。但一定要注意,第一次登录时token不要省略,否则会进入登录页面。如下图所示:

登录成功后,进入jupyter主页面:

优化部署

快速部署可以马上开启一个应用可使用,但是还可以再进一步优化。

1、安装完成后,虽然可以通过感叹号方式安装第三方库,但如果能在启动镜像时安装就更完美了。

2、访问还需要token,在生产环境中当然是应该的,但大部分用途都是自己的开发环境,用token有点麻烦。

解决思路就是通过Dokerfile创建镜像。在创建镜像时通过requirements.txt安装所需要的库。下面的requirements.txt中指定了numpy、pandas、matplotlib三个数据处理常用的库。jupyterlab-language-pack-zh-CN是jupyter的中文库,安装后可以在设置里选择中文。

numpy==1.24.2

pandas==2.0.0

matplotlib==3.7.1

jupyterlab-language-pack-zh-CN

在项目文件夹中创建Dockerfile文件,并填写以下内容:

FROM jupyter/minimal-notebook
COPY ./requirements.txt /tmp/requirements.txt
RUN pip install -r /tmp/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

修改docker-compose.yml文件,引用Dockerfile创建镜像。通过 命令"start-notebook.sh --NotebookApp.token="将token值设置为空,避免登录时需要带上token或修改密码。

version: '3'

services:

  jupyter:

    build: .

    volumes:

      - ./work:/home/jovyan/work

    ports:

      - 8888:8888

    container_name: jupyter_notebook

    command: "start-notebook.sh --NotebookApp.token="

准备工作完成,使用docker compose启动服务

sudo docker compose up -d

启动完成后,直接输入http://你的ip:8888就可以访问jupyter了。

需要注意的是,我们使用的是最小镜像jupyter/minimal-notebook,如果想要安装完整镜像,就使用jupyter/datascience-notebook。二者不同之处就是完整镜像还包括了julia和R语言的支持。