流程:连接服务器+创建容器+环境配置+代码运行
SSH连接服务器:
首先要下载一个能远程访问的软件,例如Git、Visual Studio Code上配置ssh插件也可以,主要是通过ssh协议进行远程链接。SSH 为建立在应用层基础上的安全协议,是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。对SSH有兴趣的同学可以自行百度。
Git连接服务器示意图:输入ssh远程连接指令后,一般需要一道密钥来验证身份,具体密码可以询问教研室的师兄师姐。
创建docker容器
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
1.DockerClient客户端
2.Docker Daemon守护进程
3.Docker Image镜像
4.DockerContainer容器
docker run --name mytest-p 80:80 -d test
//docker run:创建并运行一个容器 --name 给自己的容器起名字 -p 端口映射 -d:后台运行容器 test镜像名称
docker运行技巧
首先要知道镜像和容器的不同。
一个镜像可以开启多个容器。
可以通过 docker pull 命令对镜像进行获取。
创建容器 docker run --runtime=nvidia --name uname -i -t vistart/mmdetection /bin/bash
进入容器 docker exec -it containerID /bin/bash
按上述命令进入容器后退出容器但是不关闭容器:exit
停止容器 docker stop containerID
重启容器 docker restart containerID
查看所有容器 docker ps -a
查看运行容器 docker ps
创建好自己的容器后,我们就可以在容器里快乐做实验了。
拷贝指令
有的时候我们会在Windows环境下编写程序,或者有一些数据保存在我们的个人用户电脑当中,使用过程我们需要把这些内容送到服务器内。下面是两条指令,分别是由主机copy内容到服务器(Docker容器)、由服务器(Docker容器)copy内容到主机。
//将主机内的文件copy至个服务器
scp -r -P xxxx(端口号可以修改) data_path\filename(主机文件地址和名称) ubuntu(用户名)@xxx.xxx.x.xxx(服务器IP地址) :/data_path(服务器内保存文件的路径)
//将服务器内的文件copy至主机
scp -r -P xxxx username@xxx.xxx.x.xxx:data_path\filename(服务器里文件地址和名称)data_path(主机内内保存文件的路径)
Conda环境配置
有了容器,我们还需要配置符合自己训练的环境,这个时候可以选择miniconda。
1)下载minaconda
wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh #清华的镜像源latest的版本的话就是说以后一直会更新最新的版本
2)安装conda(使用bash去运行脚本,以sh结尾的文件,除了bash 之外还可以使用 ./ 去运行)
chmod 777 Miniconda3-latest-Linux-x86_64.sh #刚下载好的安装包没有可执行权限,所以需要先给权限
bash Miniconda3-latest-Linux-x86_64.sh #运行.sh (一路选yes)
3)运行conda cd miniconda3/bin #转到miniconda的bin文件夹下source activate #运行
4)添加通道 conda config --add channels
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config
–add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config
–add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda
config --add channels
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
//至此我们就可以快乐地创建环境进行实验了。
代码运行
代码一般都是在自己的电脑上写完后,上传至服务器进行训练。