使用 Docker 在本地构建 Jupyter Notebook
先看下 Jupyter 官方的介绍
The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.
一个很方便地使用 Python 做数据分析和数据科学的 Web 应用,赶快在本地构建一个用起来吧。
安装和使用 Docker
这篇文章的假设前提是你对 Docker 比较熟悉,或者至少安装了 Docker。
如果你不知道 Docker 是什么或者不知道怎么使用,需要先查阅和熟悉下 Docker 的资料和使用方法。
基于镜像 jupyter/scipy-notebook 再进行 build
1 | $ docker search jupyter # 从Docker Hub查找Jupyter镜像 |
发现已经有构建好的Jupyter镜像,我使用jupyter/scipy-notebook,发现没有 Hive 环境以及相关依赖,所以基于这个镜像进行了再次构建。
编写 requirements.txt 和 run.sh
Python 链接 Hive 我用的是PyHive,需要安装相关的依赖。
1 | $ cat requirements.txt |
1 | $ cat run.sh |
编写 Dockerfile
Dockerfile 是一个文本文件,里面是指令和 shell 命令。
1 | FROM jupyter/scipy-notebook:b2562c469cdd # 基于一个Docker image |
最后当前目录包含如下的文件
1 | $ tree ./ |
docker build
开始构建镜像
1 | $ docker build -t myrepo/jupyter -f Dockerfile . # -t 镜像的名字 -f 指定要使用的Dockerfile路径 |
build 完成后可以看到镜像
1 | $ docker images |
docker run
现在创建一个容器并运行了
1 | $ docker run \ |
运行起来后终端会输出一个带 token 的本地连接 http://127.0.0.1:8888/?token=,点击打开。
查看版本和测试功能
新建一个 Python 文件运行查看下版本
1 | import pandas as pd |

可以写一个类似下面的简单脚本测试下 Hive 连接功能是否正常
1 | from pyhive import hive |
好了,至此一个本地的 Jupyter 环境就部署好了。