本地使用服务器Docker中jupyter notebook
1.进入服务器
2 .启动并进入容器
#查看docker中的镜像:
docker images
#启动一个容器,命名为jutest:
#首先在root下创建一个叫jufile的文件夹,用于存放自己的数据
#将主机的/root/jufile挂载到/home/**
#通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。
#容器端口号为80
docker run --name jutest -p 80:8888 -tdi -v /root/jufile:/home/** {镜像名}:{版本号}
#查看容器
docker ps -a
docker container ls #查看正在运行的容器
#进入容器:
docker exec -it jutest bash
#交互模式中,使用 ctrl+p+q退出交互 保持运行,使用 exit命令退出并停止容器。
#删除容器
docker rm jutest
(已经配置好,原来就有jupyter的可以跳过)3.在容器中安装并配置jupyter notebook
#安装jupyter
pip install jupyter
#安装vim
apt-get update
apt-get install vim
#配置jupyter notebook可远程访问
jupyter-notebook --generate-config
配置文件路径:/home/jovyan/.jupyter/jupyter_notebook_config.py
(1)# 输入密码两次
jupyter-notebook password
# 复制下面的sha1码
(2)
ipython
from notebook.auth import passwd
passwd()
# 得到密匙:sha1:d0a0bf72bb4f:b0a44fb244f29cc8775e8e5b405062be289206ba
vi /home/jovyan/.jupyter/jupyter_notebook_config.py
# 在jupyter_notebook_config.py 文件填入下面配置:
# 允许通过任意绑定服务器的ip访问
c.NotebookApp.ip = '*'
# 用于访问的端口
c.NotebookApp.port = 8888 #注意这里与前面启动容器的端口要一致
# 不自动打开浏览器
c.NotebookApp.open_browser = False
#允许远程访问
c.NotebookApp.allow_remote_access = True
# 设置登录密码
c.NotebookApp.password = u'sha1:d0a0bf72bb4f:b0a44fb244f29cc8775e8e5b405062be289206ba'
# 复制jupyter_notebook_config.json中的sha1码
4. 容器内启动jupyter
#首先要在容器内启动jupyter
jupyter notebook --ip=0.0.0.0 --allow-root
#按Ctrl+P+Q退出容器但不关闭容器exit
5. 本地浏览器远程连接docker的jupyter
登录服务器(可使用windows系统的powershell登录)
通过ssh
远程登陆服务器,用-L
参数将容器对应的端口映射到本地端口。
ssh -L8008:localhost:80 ****@1**.1**.***.192 -p 2****
#grmh-gdl123$%
最后本地浏览器,在地址栏输入本地端口localhost:8008,就可以使用notebook了。
http://localhost:8008
6从容器内拷贝文件到主机上
#docker cp 容器名:/file/path/within/container /host/path/target
docker cp jutest:/home/** /root/jufile