利用Docker环境配置jupyter notebook服务器

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/eswai/article/details/79437428

利用Docker环境配置jupyter notebook服务器

Eswai: http://blog.csdn.net/eswai

我们有一台高性能工作站,配置好了TensorFlow所需环境的容器。现在我希望局域网的其他计算机都能使用这个环境,但是SSH远程登录还是不够便捷。因此想到可以配置jupyter notebook服务器,其他计算机可以用浏览器来登录。

1 配置docker镜像

假设此步骤已经搞定

2 开启容器

> NV_GPU=0 nvidia-docker run -it --name notebook-server -p 7777:8888 -v /home/eswai:/eswai eswai/tf140py2:1.0  /bin/bash

其中,
- NV_GPU=0 nvidia-docker
- NV_GPU=0 选择第0个GPU设备
- 用nvidia-docker才能启用GPU
- 如果不用GPU,直接用docker命令就行
- -it
- -i 以交互模式运行容器,通常与 -t 同时使用
- -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
- –name 后面跟容器的名称notebook-server是我自定义的名字,可以随便改;
- -p 端口映射,如xxxx:yyyy将主机的xxxx端口映射到容器内的yyyy端口,jupyter notebook默认使用8888端口,7777是我自定义的,不冲突就好;
- -v 路径映射 /a : /b将主机的/a路径映射到容器的/b,根据自己的需要手动修改
- eswai/tf140py2:1.0是我使用的镜像名称和版本号,根据具体需要修改
- /bin/bash 启动镜像后执行的命令

3 配置jupyter notebook

3.0 此时已经进入容器内终端,如果容器已关,请先start再attach

3.1 创建存放jupyter notebook的文件夹

> cd [映射目标]
> cd /eswai
> mkdir [存放notebook的文件夹]
> mkdir jupyter

此时相当于在主机的/home/eswai下创建了jupyter文件夹

3.2 如果容器内没有jupyter notebook,需要安装一下

> pip install jupyter notebook

3.3 配置jupyter notebook

> jupyter notebook --generate-config
> vim ~/.jupyter/jupyter-notebook-config.py

修改如下内容

# 允许root启动
c.NotebookApp.allow_root = True
# 允许远程访问
c.NotebookApp.ip = '*'
# 设置notebook文件夹
c.NotebookApp.notebook_dir = '/eswai/jupyter'
# 设置静态token,这样就不用每次换token了,另一种方法是设置密码password
c.NotebookApp.token = '[自定义token]'

3.4 开启notebook

在主机终端下

> docker exec notebook-server jupyter notebook &

或在容器内终端下

> jupyter notebook &
按Ctrl+P+Q退出容器但不关闭

4 测试使用

打开链接: http://[主机IP]:[配置映射的主机端口]/tree?token=[自定义的token]

形如:http://172.16.1.1:7777/tree?token=9Llv9cCqyNv1Vf7g

展开阅读全文

没有更多推荐了,返回首页