本地使用服务器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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐