服务器使用指南
服务器使用流程
连接计算服务器-> 在计算服务器上配置 docker -> 在计算服务器挂载存储服务器 -> 在 docker 中运行代码
1 操作手册
2 Pycharm 配置
2.1 SSH 配置
Pycharm 对于实验室设备来说并不好用,踩了很多坑还是换回了 VScode
以 VScode 为例,通过在个人文件路径下设置 config 来完成(需要修改实际地址,用户,以及端口号)
在校外就使用直连完成,如果使用 easy connect 就需要使用跳板机

完毕后就可以在终端中快速启动 SSH 服务器的终端
2.2 访问 Docker 内文件
如果已经创建了 docker 就需在容器内部启动 SSH 服务,在本机进行远程连接
内层安装包:
apt install openssh-server
apt install openssh-client
apt install nano
nano /etc/ssh/sshd_config在配置文件中需要修改两个地方
Port 2222 # 防止端口冲突,随便选择一个
PermitRootLogin yes # 允许 root 登陆另外需要修改 root 的密码,输入一下指令
passwd配置完毕后,重启 SSH 服务
service ssh restart就可以在本地直接通过 SSH 访问容器内部,注意 ip 是宿主机的 ip(因为启动时候选择了 host 选项)
ssh root@xxx.xxx.xxx.xxx -p 2222有时候会出现问题,是更换 image 产生的
ssh-keygen -R '[192.168.1.244]:2025'3 计算服务器设置
在计算服务器上创建一个 Docker 的容器,对容器挂载存储服务器的文件即可
3.1 选择镜像
首先查看镜像源中所有的镜像,然后选择一个合适的版本进行运行
注意要检查驱动支持的 CUDA 版本
docker images3.2 创建镜像命令
# 不用了
NV_GPU=0,1,2,3 nvidia-docker run --shm-size=4g --rm -d -it --net=host --cap-add sys_admin --privileged --name xxx pytorch/pytorch:xxx bash
# 也不用
docker run --gpus all --pid=host --shm-size=4g -d -it --net=host --cap-add sys_admin --privileged --name yangsh yun.nju.edu.cn:5000/xxx bash推荐使用
docker run --gpus all --shm-size=8g --rm \
--mount type=bind,source=/share/datasets,target=/mount/share/datasets \
--mount type=bind,source=/share/yangsh,target=/mount/yangsh \
-dit --net=host --cap-add sys_admin --privileged \
--name yangsh \
yun.nju.edu.cn:5000/yangsh/pytorch:2.5.1-cuda12.4-basicsr \
bash3.3 执行操作
进入 容器的交互命令行
docker exec -it yangsh bash3.4 挂载存储(旧存储)
在挂载存储之前,需要先执行基础库的安装
apt update
apt install nfs-common -y
apt install nfs-kernel-server -y
apt install netbase -y执行后进行挂载安装
mkdir ./yangsh
mount -t nfs -o rw,nolock,vers=3 192.168.1.145:/sf/yangsh ./yangsh4 挂载新存储服务器
挂载通过创建 docker 的时候指定,与旧存储
docker run --gpus all --shm-size=4g --rm \
--mount type=bind,source=/share/datasets/vimeo_long,target=/datasets/ground_truth,readonly \
--mount type=bind,source=/share/datasets/PrePost/NVDEC_HEVC_OUT/200K/vimeo_long/,target=/datasets/decoded,readonly \
-d -it --net=host --cap-add sys_admin --privileged \
--name yangsh \
yun.nju.edu.cn:5000/base:pytorch-2.5.1-cuda12.4-compressai-1.2.6 \
bash
docker run --gpus all --shm-size=8g --rm \
--mount type=bind,source=/share/datasets,target=/mount/share/datasets \
--mount type=bind,source=/share/yangsh,target=/mount/yangsh \
-dit --net=host --cap-add sys_admin --privileged \
--name yangsh \
yun.nju.edu.cn:5000/yangsh/pytorch:2.5.1-cuda12.4-basicsr \
bash5 Docker 导出
对于计算服务器,并没有权限直接访问 share 文件夹
可以借助于 docker 服务器中转操作
参考以下命令
docker commit xxx(容器名) yun.nju.edu.cn:5000/xxx(个人用户名)/pytorch:1.8.x-cuda11.x-cudnnx-devel
docker push yun.nju.edu.cn:5000/xxx(个人用户名)/pytorch:1.8.x-cuda11.x-cudnnx-devel6 查看自己的镜像
首先在服务器上登陆
docker login yun.nju.edu.cn:5000curl -s http://yun.nju.edu.cn:5000/v2/_catalog | grep "yangsh/"
curl http://yun.nju.edu.cn:5000/v2/yangsh/pytorch/tags/list# tag
pytorch-2.5.1-cuda12.4-compressai-1.2.6或者直接通过 网址
7 守护进程
常见操作
# 创建会话
tmux new -s train
# 重新链接
tmux a -t train
# 列出所有会话
tmux ls离开会话(后台保留)
Ctrl + b d滚动模式 Ctrl + b [ 退出 q
8 快捷指令
这里列出了成功运行以后,最常用的几个命令,供快速查询
# 启动
docker run --gpus all --shm-size=8g --rm \
--mount type=bind,source=/share/datasets,target=/mount/share/datasets \
--mount type=bind,source=/share/yangsh,target=/mount/yangsh \
-dit --net=host --cap-add sys_admin --privileged \
--name yangsh \
yun.nju.edu.cn:5000/yangsh/pytorch:2.5.1-cuda12.4-basicsr \
bash
# 进入容器
docker exec -it yangsh bash
# 重启 ssh 服务
service ssh restart在本机上可能需要进行:
ssh-keygen -R '[192.168.1.244]:2025'Docker Hub 使用
docker commit xxx(容器名) yun.nju.edu.cn:5000/xxx(个人用户名)/pytorch:1.8.x-cuda11.x-cudnnx-devel
docker push yun.nju.edu.cn:5000/xxx(个人用户名)/pytorch:1.8.x-cuda11.x-cudnnx-devel
评论已关闭