一个计算机技术爱好者与学习者

0%

好好学Docker:使用Docker安装配置Jupyter

1. 前言

《Jupyter notebook》一文中学习了jupyter的使用,本文学习一下怎样使用docker安装jupyter,并且配置访问密码。

前置条件是安装配置好了docker环境,安装方法参考《Docker入门》。已知docker宿主机IP为192.168.56.130。

2. 安装jupyter

1、登录dockerhub查看需要的Jupyter - Docker Official Images

2、下载jupyter镜像(以6.1.1为例)
docker pull jupyter/base-notebook:notebook-5.7.8

注意不要使用6.x.x,存在页面无法显示扩展插件的bug,详情参考Jupyter nbextensions_configurator not shown

3、创建配置目录

1
2
3
mkdir -p /opt/jupyter/jovyan
mkdir -p /opt/jupyter/jovyan/.jupyter
chmod 777 -R /opt/jupyter/jovyan

4、启动jupyter服务

1
2
3
4
docker run --name vk-jupyter -d \
-p 8888:8888 \
-v /opt/jupyter/jovyan:/home/jovyan \
jupyter/base-notebook:notebook-5.7.8

以上命令:

  • 命名容器为vk-jupyter,后台运行
  • 映射宿主机8888端口到容器的8888端口
  • 挂载宿主机目录/opt/jupyter/jovyan到容器目录/home/jovyan

更多启动命令参数可以参考Jupyter Docker Stacks

5、验证安装
docker ps,jupyter启动正常的话就可以看到vk-jupyter容器。

浏览器访问 http://192.168.56.130:8888 ,可以看到Jupyter登录页面。

6、登录
docker exec -it vk-jupyter jupyter notebook list
可以查看到登录需要的token,使用token即可登录进入jupyter编辑页面。

3. 配置jupyter

1、设置密码

1
2
docker exec -it vk-jupyter jupyter notebook password
docker restart vk-jupyter

2、使用密码
浏览器访问 http://192.168.56.130:8888
此时使用自己设置的密码就可以访问jupyter了。

3、根目录
jupyter编辑器的默认根目录为 /home/jovyan ,对应宿主机目录 /opt/jupyter/jovyan ,创建的目录和文件都去这个路径下面去找。

4、安装ipywidgets 如果不安装ipywidgets,页面加载 /nbextensions/widgets/notebook/js/extension.js 文件时会报错404。

1
docker exec -it vk-jupyter pip install ipywidgets

4. 配置Nginx

jupyter 使用了 websocket 协议,所以需要配置支持 websocket。
如果不配置的话,通过域名访问时会报错无法连接内核,也就无法运行python脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen 80;
server_name jupyter.voidking.com;
charset utf-8;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://172.17.12.85:8888;

# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

5. jupyter小技巧

5.1. 执行bash

在代码框里输入叹号+bash命令,即可执行bash,例如:
!ls -l

5.2. 登录进容器

1
2
docker exec -it vk-jupyter /bin/bash
docker exec --user root -it vk-jupyter /bin/bash

5.3. 安装常用命令

1
2
3
4
docker exec --user root -it vk-jupyter /bin/bash
apt update
apt install curl
apt install unzip

5.4. 安装插件

Jupyter Notebook 扩展插件(nbextensions)是一些 JavaScript 模块,我们可以使用插件强化 Notebook 的功能。扩展插件本质上修改了 Jupyter UI,以实现更强大的功能。
1、界面添加 Nbextensions

1
2
3
4
5
docker exec -it vk-jupyter conda install -c conda-forge jupyter_nbextensions_configurator
#docker exec -it vk-jupyter pip install jupyter_nbextensions_configurator -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
docker exec -it vk-jupyter jupyter nbextensions_configurator enable --user
docker exec -it vk-jupyter jupyter nbextension list
docker restart vk-jupyter

2、安装常用扩展集合

1
2
3
4
docker exec -it vk-jupyter pip install jupyter_contrib_nbextensions -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
#docker exec -it vk-jupyter conda install -c conda-forge jupyter_contrib_nbextensions
docker exec -it vk-jupyter jupyter contrib nbextension install --user
docker exec -it vk-jupyter jupyter nbextension list

  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-docker-jupyter/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~