在本地Windows系统访问实验室服务器并基于Docker使用Jupyter Notebook

在本地Windows系统访问实验室服务器并基于Docker使用Jupyter Notebook


       在进行一些科研任务、数据竞赛时,需要实验室服务器的支持,为了让对服务器操作不熟悉的童鞋尽快熟悉,本文介绍了在本地Windows系统访问实验室服务器并基于Docker使用Jupyter Notebook,避免新童鞋少走一些弯路。

1、本地连接实验室服务器

       实验室服务器是基于Linux系统,因此需要各位童鞋对Linux系统有一定的了解,可以通过以下的学习资料进行Linux操作系统的学习:

Linux操作系统学习

       现在假设各位已经对Linux有一定的了解,那么现在需要下载终端模拟器来链接服务器,主流的软件有Xshell、Xftp 6等,不过现在介绍一款十分好用的神器:MobaXterm,在接下来的操作中我将使用MobaXterm进行展示。

下载MobaXterm
       下载好后进入界面,如下图所示

在这里插入图片描述

       点击Session,点击SSH,输入实验室服务器ip,在name那里打钩,输入用户名(没有用户名的话让师兄给你创建一个),注意,只有连接校园网或者是使用打印机那边的网线才可以登录服务器。
       当进入这个界面就表示已经登录上了服务器。
在这里插入图片描述

2、创建Docker Image和Container

       由于实验室某些不可抗拒因素,无法在用户下面下载并安装conda,所以需要使用docker容器来满足我们的需求,如果还不知道docker是什么,请阅读下面的链接进行学习:

Docker基础学习

       现在假设已经学会了如何使用docker,那么我们就开始操作吧。由于服务器上的docker是一直在运行的,所以不需要再次启动,输入

sudo usermod -aG docker $USER

将自己的用户加到Docker用户组。避免每次输入都需要加sudo,如果无法sudo获取权限,让师兄帮你加权限。

输入

docker image ls

查看目前docker下的镜像

在这里插入图片描述
输入

docker container ls

查看正在运行的容器
在这里插入图片描述
如果需要查看docker里面的所有容器,在ls后面加上-a

       接下来选择自己需要的镜像,在https://hub.docker.com/上面将镜像拉下来,这里演示的是拉下anaconda的镜像

docker pull continuumio/anaconda3

(如果需要用到anaconda这个镜像的话就没必要再从网上拉相同的镜像,以免占用空间)
       查看下拉好的镜像
在这里插入图片描述
       这时候创建自己的container,输入

docker run --name yao -p 8888:8888 -it -v /home/tom/DISK/DISK1/yao/:/home/ continuumio/anaconda3  /bin/bash
  • 其中–name yao:container名字为yao

  • -p:指定端口映射,格式为:主机(宿主)端口:容器端口,当然这个8888:8888我已经挂载上去了,其他人挂载的时候改一下地址以免冲突(很重要,最好要加上,目前暂时没有找到怎么补加的方法,如果有欢迎补充)

  • -v:挂载目录,冒号前的表示要挂载的宿主机的地址,必须写绝对地址,冒号后的为要放到容器内部的地址,建议挂载到/home/tom/DISK/DISK1/下

  • continuumio/anaconda3是image的名字,在你想要的image下创建这个container

  • /bin/bash为初始指令,创建好这个container后直接bash运行

           如果需要用到gpu,请在创建时添加–runtime = nvidia,如下所示

docker run --runtime=nvidia --name yao -p 8888:8888 -it -v /home/tom/DISK/DISK1/yao/:/home/ airaria/pytorch0.4.1  /bin/bash

       创建好后就进入了如下的界面

在这里插入图片描述
       在这个docker你就是root用户,如果要退出docker则是用如下指令就可以回到主界面

exit

       想要重新启动container的话先用

docker container ls

查看正在运行的container,找到自己的id,复制下来,输入

docker container exec -it 51e394786f55 /bin/bash

重新启动container,51e…是我的id

3、在Docker下使用Jupyter Notebook

       直接输入jupyter notebook是不会弹出base下的jupyter notebook的,先对jupyter notebook进行配置。直接在终端下输入ipython(如果没有安装一个或者用python也行)
       输入

from notebook.auth import passwd
passwd()

在这里插入图片描述
       把这个密匙复制下来,一会有用。exit可以退出ipython
输入

jupyter notebook --generate-config

       生成jupyter notebook的配置文件,然后修改配置文件,用vi和vim都可,建议使用vim,安装如下

apt-get update
apt-get install vim

安装好vim之后,运行一下程序打开配置文件:

vim ~/.jupyter/jupyter_notebook_config.py

在这里插入图片描述
在这里插入图片描述
复制下面的内容

c.NotebookApp.ip='*'
c.NotebookApp.password = u'你的密匙'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 # 这个ip改成你创建时候的那个ip
c.NotebookApp.allow_root = True # 这个可加可不加,不加就每次输入的时候加上--allow-root

配置好后,输入wq保存。
然后先创建自己的环境

conda create --name py38 python=3.8

       py38是python3.8环境的名字,想创建什么样的python环境都可以改,创建好后,输入

source activate py38

激活环境

接下来再把自己的环境加到jupyter中,先输入

conda install ipykernel

安装ipykernel,然后将环境写入jupyter

python -m ipykernel install --user --name 环境名称 --display-name "Python (环境名称)"

然后直接在终端输入jupyter notebook
在这里插入图片描述
已经看到jupyter notebook在运行了,在本地浏览器(最好是chrome)下面输入http://实验室ip:xxxx,这个xxxx是你映射时候的ip,我设置的时候为8888,所以输入是8888
在这里插入图片描述
本地jupyter notebook正常运行了,选择切换kernel就可以切换到你想要的版本!搞了2天遇到了各种坑,记录一下2333,希望对大家有帮助,如果有什么错误或者是什么补充欢迎提出,更方便以后的新童鞋阅读。

参考文献:https://blog.csdn.net/weixin_40008349/article/details/81135847
https://www.jianshu.com/p/889885e75de8

猜你喜欢

转载自blog.csdn.net/weixin_44424296/article/details/108625409