概述:为了方便使用远程服务器的炼丹师通过windows本地的浏览器进行jupyter notebook访问,在这里分享一下我趟过的流程。
准备:(1)windows系统的本地主机;(2)windows系统上安装MobaXterm (一款强大的ssh连接工具);(3)一台远程服务器,已安装docker(不用docker也可以,但是这里只讲docker中的情况)。
docker 和jupyter notebook 有多好用就不多BB了, 直接进入正题。
服务器端:
一. 创建一个docker并进行端口映射
docker run -it --runtime=nvidia -p 7777:8888 --ipc=host -v /export:/export --name fuck 4s3476a4e456 bash
其中, --runtim=nvidia为使用nvidia docker;-p 7777:8888 为将服务器端口7777映射为容器的8888端口,这个7777之后会用到;--ipc=host 让容器共享主机ipc命名空间; -v /export:/export 为将服务器的/export目录挂载到容器的/export目录下;--name为容器命名; 一长串数字和字母是docker镜像的id; bash 进入交互界面。
二. 在容器中开启jupyter notebook
jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/export'
其中 --no-browser 表示不启动服务器的浏览器,--ip=0.0.0.0 表示监听在本机的所有IP地址上。--allow-root 表示运行root运行。--NotebookApp.token= 表示设置密码,可以不设。--notebook-dir='/export' 表示jupyter notebook工作的root目录。
本地windows主机端:
一. 通过mobaxterm连接服务器
new session 创建一个ssh连接,如同linux上ssh usrname@192.168.0.2 一样,只不过这里需要填写到对应格子里。

二. 设置端口转发(port forwarding)
连接后就进入服务器的终端。这个时候需要设置Tools 中的MobaSSHTunnel(port forwarding)进行端口转发


点击进入设置界面,选择“local port forwarding”; 左下"forwarded port"设置为你在本地要访问jupyter notebook的网络端口,比如“1234”;右下就写你目前ssh到server的ip, usrname, 端口(22);右上依旧写server ip, 然后是你在docker 映射的端口号“7777”。设置完成后点击start,就可以开启了。
三. 在windows主机浏览器中使用jupyter notebook
大功告成了,打开本地一个浏览器,网址输入"localhost:1234", 就可以访问服务器docker中的jupyter notebook了。
