操作环境:mac OS 10.14.6
docker版本:10.03.1
终端:iterm2 3.3
时间:2019年8月
::说明::jupyter
没有提供单独的jupyterlab
镜像,可以使用jupyter/all-spark-notebook
镜像进行操作
下载镜像:
$ docker pull jupyter/all-spark-notebook # 使用默认latest标签
镜像大小docker hub上大概在2GB左右, 本地解压需要5GB左右
当然可能有镜像层复用的情况,实际可能没有5G
运行:
$ docker run --rm -p 8888:8888 -p 4040:4040 --name jupyter -e JUPYTER_ENABLE_LAB=yes -v ~/program/jupyter:/home/jovyan/ jupyter/all-spark-notebook
::说明::--rm
: 退出后删除容器, 数据保存到宿主机, 每次重启都是一个干净的容器-p 8888:8888
: 映射web端口;-p 4040:4040
: 映射spark UI端口;--name jupyter
: 设置运行后容器名称为jupyter,方便后续操作;-e JUPYTER_ENABLE_LAB=yes
: 设置变量;-v ~/program/jupyter:/home/jovyan/
: 将本地目录映射到容器中,本地目录:~/program/jupyter, 容器目录: /home/jovyan/;
命令执行完成后,复制红色部分到浏览器访问jupyter
停止
# 新开终端
$ docker stop jupyter
设置别名,让操作稍微简单点
$ sudo vim ~/.zshrc # 使用vim打开zsh配置文件
# .zshrc文件末尾新增内容
alias run_jupyter='docker run -d --rm -p 8888:8888 -p 4040:4040 --name jupyter -e JUPYTER_ENABLE_LAB=yes -v ~/program/jupyter:/home/jovyan/ jupyter/all-spark-notebook && sleep 5s && docker exec -it jupyter jupyter notebook list'
alias stop_jupyter='docker stop jupyter'
alias jupyter_list="docker exec -it jupyter jupyter notebook list"
# 退出vim后执行命令
$ source ~/.zshrc
::说明::
首先,对jupyter运行命令进行了修改,
1. 添加了后台运行参数 -d
, 切换至后台导致出现没法获取URL,于是在运行完docker后新增了两个命令
2. sleep 5s
等待5s,让jupyter启动完成,
3. docker exec -it jupyter jupyter notebook list
显示访问URL, 显示的URL需要进行修改
然后,添加停止容器jupyter
最后,添加一个单独的获取URL的命令,同样需要修改URL
以后的操作就简单了, 启动容器:run_jupyter
, 停止容器:stop_jupyter
, 显示访问地址: jupyter_list
参考地址:
Running local Jupyter (and JupyterLab) env with Docker