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语言的支持。