在Docker中安装并配置Jupyter Notebook(linux系统)
-
拉取官方镜像
使用Jupyter官方科学计算镜像(包含常用库)或者使用自己常用的linux或者jupyter镜像,可以通过pip安装:docker pull jupyter/datascience-notebook -
创建数据卷(持久化存储)
在宿主机创建笔记本存储目录:mkdir -p ~/jupyter/notebooks -
可选数据卷以及映射配置文件(可选,我一般在docker内部使用vim更改)
这里选择映射文件,先获取一个标准文件作为外部映射
执行后,配置文件会生成在~/jupyter-config/jupyter_notebook_config.py# 1. 创建配置文件目录 mkdir -p ~/jupyter-config # 2. 生成配置文件(使用临时容器) docker run --rm \ -v ~/jupyter-config:/home/xibin/.jupyter \ jupyter/base-notebook \ jupyter notebook --generate-config -
然后再次运行一个容器挂载
/jupyter-config/jupyter_notebook_config.py,就可以在宿主机直接修改容器内的jupyter配置文件了docker run -d \ -p 8888:8888 \ -v ~/jupyter-config:/home/xibin/.jupyter \ -v "$PWD":/home/xibin/work \ #可选 jupyter/base-notebook -
如果不用docker映射,在非jupyter镜像的docker中或者在宿主机使用pip下载jupyter,首先更新pip
pip install --upgrade pip # 更新pip pip install vim -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --default-timeout=3500 # 使用阿里源下载pip的参数说明:
-i http://mirrors.aliyun.com/pypi/simple/:表示使用阿里源
--trusted-host mirrors.aliyun.com:用于指定信任的主机,允许从这些主机下载包而不验证 HTTPS 证书。解决ssl问题
--default-timeout=3500:设置超时时间,防止下载超时pip install jupyter -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --default-timeout=3500 --root-user-action=ignore mediapipe # 使用阿里源 -
使用命令生成一份配置文件,会生成一个文件在/root/.jupyter/jupyter_notebook_config.py
jupyter notebook --generate-config # 生成配置文件 -
编辑这个配置文件
vim /root/.jupyter/jupyter_notebook_config.py# 生成配置文件 # 使用下载的vim编辑 -
更改一些常用的配置:
# 允许远程访问 c.NotebookApp.allow_remote_access = True # 禁用浏览器自动打开 c.NotebookApp.open_browser = False # 设置ip地址 c.NotebookApp.ip = '0.0.0.0' # 设置工作目录(可选) c.NotebookApp.notebook_dir = '/home/jovyan/work' -
如果是c.ServerApp.allow_root看下边
# 允许远程访问 c.ServerApp.allow_remote_access = True # 禁用浏览器自动打开 c.ServerApp.open_browser = False # 允许root用户(可选) c.ServerApp.allow_root = True # 允许所有网络设备访问 c.ServerApp.ip = '' # 设置工作目录 c.NotebookApp.notebook_dir = '/workspace/work' # 设置容器端口号 c.ServerApp.port = 9007 -
配置完毕后启动
nohup jupyter-notebook --config=~/.jupyter/jupyter_notebook_config.py \ --allow-root & # 参数说明: # --config=~/.jupyter/jupyter_notebook_config.py 代表使用指定目录的配置文件 # --allow-root 表示在root 用户环境下启动,docker中经常需要加这个参数 # nohup 后台持续运行jupyter并把日志输出到nohup.out -
在nohup.out文件里查看或者没指定后台运行,会直接输出:

-
记住这个token,浏览器访问IP地址:9007,

-
复制刚刚的token,输入到Password or token后登陆

-
就可以创建新的notebook写代码了,受docker影响,只能访问挂载的目录,如果需要的话,需要在docker run的阶段指定--volume /path/:/docker/path/.
-
不想用token,可以在页面设置密码,更推荐在配置文件中设置:
from notebook.auth import passwd hashed_password = passwd() print(hashed_password)新版jupyter导入方式变了:
from jupyter_server.auth import passwd hashed_password = passwd() print(hashed_password) -
将生成的密码输入到 ~/.jupyter/jupyter_notebook_config.py中的 c.NotebookApp.password或者c.ServerApp.password下

-
重启jupyter

jupyter就可以正常使用了
<<本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系>>
💡 提示:生产环境建议使用HTTPS,可通过Nginx反向代理添加SSL证书
728

被折叠的 条评论
为什么被折叠?



