因为Docker Hub无法打开,Jupyter Notebook等官方镜像也无法下载,所以另辟蹊径下载了热门的Python3基础镜像,从头开始安装纯净版本的Jupyter Notebook环境,本文记录了完整的Jupyter Notebook安装过程,方便自己查阅,也供其他人员参考,请确保当前已有Docker运行环境
直接拉取最新Python镜像,映射宿主机与容器内部目录,因为目前只用到Notebook的Web服务,所以只映射了一个端口开放使用
docker run -itd -p 2222:2222 -v /home/jupyter:/home/jupyter --name jupyter python
进入镜像容器内部
docker exec -it `容器编号` /bin/bash
设置pip下载镜像源为清华
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
下载jupyter,默认会下载最新版本7.X的Notebook,但是目前最新版本安装nbextensions
插件会报错,所以这里下载6.X的Notebook最后版本
pip install jupyter
pip install jupyter notebook==6.5.5
生成Jupyter默认配置文件,并自定义配置选项
jupyter notebook --generate-config
生成配置文件后,控制台会打印生成的文件地址,通常是这个 /root/.jupyter/jupyter_notebook_config.py
,如果生成的文件已经存在,会提示你是否需要覆盖,根据自己需要选择即可
因为此镜像没有Vim
编辑器,我们可以按照如下步骤使用cat
快速编辑保存配置
- 使用
cat jupyter_notebook_config.py
命令查看配置文件,并选中复制到电脑文本中 - 找到如下配置项,不同版本略有不同,但后缀相同,最后会附上当前完整配置以供参考
- c.NotebookApp.allow_remote_access = True # 允许远程访问
- c.NotebookApp.ip='0.0.0.0' # 自动获取服务器ip
- c.NotebookApp.allow_root =True # 打开root权限启动
- c.NotebookApp.open_browser = False # 服务端禁止自动打开浏览器
- c.NotebookApp.port = 2222 # 创建docker时候配置的端口号
- 上面设置项改完后,可以复制编辑好的全部配置文件,使用命令
cat > jupyter_notebook_config.py
,覆盖当前所有配置,最后Ctrl+D
保存文本,也可以使用命令cat >> jupyter_notebook_config.py
追加自己更改的设置项
配置文件成功后,可以在当前目录使用命令 jupyter notebook
启动服务,控制台没什么报错的话会打印Jupyter Notebook访问地址链接,复制好链接中的token后面的值,我们便可以在打开的页面中输入token值,用来设置初始访问密码
当然我们可以事先生成密码,然后设置到配置文件中,但是上面的方法更为简单,以下方法仅供参考
- ipython
- from notebook.auth import passwd
- passwd()
- Enter password: XXXX
- Verify password: XXXX
- Out[2]: '生成的密钥'
复制生成的密钥,填入配置文件的
c.NotebookApp.password
项中 注意前面有 u
示例 c.NotebookApp.password=u'生成的密钥'
后台运行Jupyter Notebook
上面使用命令
jupyter notebook
启动服务后,控制台不方便执行其他命令,可以先使用Ctrl+C
中断服务,在当前目录下使用nohup jupyter notebook &
以启动后台服务,默认当前目录为工作目录,新建的文件会保存在此处,也可以指定工作目录,如jupyter notebook --notebook-dir='工作目录地址'
,注意,如果当前端口存在冲突时,Jupyter服务的端口会自动顺延至下一个可用的端口,会导致服务无法访问,可以使用命令ps aux |grep note
查看当前是否已存在运行服务,然后使用kill -9 服务的PID
杀掉对应进程
下载插件管理器nbextensions,并安装
pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install --user
当前我开启的插件,根据自己需求来
- Export Embedded HTML
- RISE
- Hinterland
- Nbextensions dashboard tab
- Table of Contents (2)
- Variable Inspector
- Code prettify
- Hide input all
- Nbextensions edit menu item
- zenmode
使用主题(优雅的主题更舒心)
pip install jupyterthemes
可以使用
jt -ls
查看当前所有主题名称,jt -t
主题名称可以切换到对应主题,切换主题,通常无需重启Jupyter Notebook,刷新Notebook页面即可看到变化,最后可以使用jt -r
还原为默认主题
附我当前使用的主题配置
jt -t gruvboxd -fs 12 -cellw 80% -ofs 11 -dfs 11 -T -N
说明
-f(字体) -fs(字体大小) -cellw(占屏比或宽度) -ofs(输出段的字号) -T(显示工具栏) -N(显示自己主机名)
看自己需要,是否需要安装下面插件
- 报表展示
pip install plotly_express
- 报表展示
pip install pyecharts
- 查看当前系统环境信息
pip install watermark
- 幻灯片插件
pip install rise
%load_ext watermark
%watermark
查看当前Jupyter中已有的核心包版本
jupyter --version
附 jupyter-notebook完整配置文件
# Configuration file for jupyter-notebook.
c = get_config() #noqa
#------------------------------------------------------------------------------
# Application(SingletonConfigurable) configuration
#------------------------------------------------------------------------------
## This is an application.
## The date format used by logging formatters for %(asctime)s
# Default: '%Y-%m-%d %H:%M: