清空磁盘和系统重置
check the old version of ubuntu
1.nvidia-service
2.disk
3.nvcc
null
4. docker
cudnn安装guide
cudnn安装
docker_container扩容
ZFS存储服务
显卡驱动安装
重做了系统 unbuntu 22 制作驱动盘通过一个空U盘
开机按ESC启动
装了基本的gcc c++等编译器
使用ubuntu22自带的 附加驱动软件安装了显卡驱动(nvidia-driver)
安装了nvidia-driver nvidia-devices cuda cudnn
安装了docker nvidia-docker
cuda可以通过命令行安装,见官网
cudnn安装
docker安装
nvidia-docker安装
nvidia-docker安装
//实验中 cuda版本是12.2 nvidia-docker 验证安装命令是
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:122.2-base-ubuntu22.04 nvidia-smi
#nvidia-docker测试
#### Test nvidia-smi with the latest official CUDA image
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
#### Test nvidia-smi with the latest official CUDA image on two GPUs
sudo docker run --rm --runtime=nvidia --2 all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
container创建使用
创建以及提前需要的配置的使用教程
使用教程
#查询命令
## 显卡驱动
nvidia-smi
## cuda
nvcc -V
## nvidia-docker
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
nvidia-docker version
## cudnn
# cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 //这个和视频指导的不一样,应该是因为安装路径时没有在/local/cuda中安装
实验室电脑安装版本
cudnn版本8.9.6👇
cuda版本11.5👇
更换安装源
在root下,输入:
sudo gedit /etc/apt/sources.list
更新源各种源文件
文件复制
cp 复制 拷贝
复制、拷贝 copy
cp 文件名 路径 cp bj.txt ./java/jee:把当前目录的bj.txt拷贝到当前目的java文件夹里的jee文件夹里
cp 文件名 文件名 cp dd.txt ee.txt :复制并改名,并存放在当前目录下 (cp源文件名 新文件名)
cp file1 file2 复制一个文件
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 . 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
mv 移动/剪切、重命名
1、剪切 移动
mv文件名 路径 (mv源文件 目的地)
mv aa.txt ../android/ 把当前目录下的文件aa.txt剪切到上一级目录的子目录android目录里
mv aa.txt .. 把文件aa.txt移动到上一级目录
2.、重命名(假如把剪切的文件存放在同一个目录中,则是重命名)
mv 文件名 文件名 (mv源文件 目标名称)
mv bb.txt cc.txt 把文件bb.txt重命名为cc.txt
mv dir1 new_dir 重命名/移动 一个目录
rm 删除文件或目录
rm 直接删除,rm文件名
rm -f 强制删除文件或目录,假如要删除的文件不存在,也不提示 rm -f文件名 force
rm -i 删除前提示是否删除,默认不删除, 若要删除,输入y interactive
rm -d 删除空白目录 rm -d空目录名 directory
rm -r 删除有内容的目录,将指定目录下的所有文件及子目录一并处理,递归删除 recursive
rm -rf filename 强制删除目录或文件(目录有内容时,也删除)
rmdir 删除文件夹(目录)
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1'的目录
rm -rf dir1 删除一个叫做 'dir1'的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
Ubuntu可视化文件操作与权限
当我们想要快速复制粘贴的时候,很多情况下会进行可视化操作,可是这时候会导致没有权限,
解决办法:
第一种方法 :
终端输入sudo nautilus 即可获得可视化文件管理权限
第二种方法 :
使用Ubuntu自带工具gedit
gedit filename也可以进行快速的文件编辑
现有思路
想通过docker实现端口映射登录,实现gpu共享(已搜到解决方案)
因为实验室有多块硬盘,4T+4T+8T,但是系统盘只有256G的固态,想实现创建的container的数据都在8T硬盘上,而大的数据库在4T+4T做两个共享数据库文件到硬盘上。
参考安装思路👇
使用Docker搭建实验室共享GPU服务器 //重点参考了这篇博客
给docker存储目录扩容
修改docker的默认镜像存储位置(二)//参考了这篇的方法
Docker隔离服务器不同用户环境
Docker如何实现多容器共享单个GPU,实现并行的效果?
实现多个物理盘放到一个逻辑卷里并挂载
下载docker镜像
docker pull nvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04
转移docker到8T磁盘
把 8T磁盘挂载到了 /data-8T
修改了 /etc/docker 里的json文件daemon.json
apt的更细源文件在
/etc/apt/sources.list
ssh的配置文件
配置的启动脚本
创建启动脚本
cd /home
vim startup.sh
输入启动脚本内容
#!/bin/bash
service ssh start
/bin/bash
打包镜像
打包为镜像
为了便于以后新建虚拟机,将容器作为镜像打包
nvidia-docker commit -m "一些说明" -a "作者" cuda1 cuda-base:1.0
其中cuda1为容器的名字,cuda-base:1.0为镜像的名字和tag。
共享文件
新建公共目录
cd /home
sudo mkdir docker-common-dir
新建容器
NV_GPU=0 nvidia-docker run -dit --restart=always -v /home/docker-common-dir:/home/common-dir -p6001:22 --name=vm1 -h=LAB_VM cuda-base:1.0 /home/startup.sh
NV_GPU=1 nvidia-docker run -dit --restart=always -v /home/docker-common-dir:/home/common-dir -p6002:22 --name=vm2 -h=LAB_VM cuda-base:1.0 /home/startup.sh
其中NV_GPU环境变量是为了控制容器可访问的GPU,如果不加这个参数则容器可以访问全部的GPU。--restart=always
是为了设置容器随Docker自动启动。将宿主机的 /home/docker-common-dir
映射到了容器的 /home/common-dir
目录,便于和容器的文件传输,容器的文件存储以及容器之间的文件传输。最后跟的是启动脚本,如果不输入则每次容器启动都不会自动启动ssh服务。
如果一切正常的话,现在已经可以通过ssh客户端连接两个容器了
docker使用命令
docker images //查看镜像
docker ps //查看container
docker rm <CONTAINER_ID or CONTAINER_NAME> //删除 container
docker rm -f <CONTAINER_ID or CONTAINER_NAME>//如果container在运行的话
docker exec -it <CONTAINER_ID or CONTAINER_NAME> bash //进入container
docker system df //查看image、container
docker system df -v 查看 每个 image、container详细大小
docker stop <CONTAINER_ID or CONTAINER_NAME> //暂停容器
docker restart <CONTAINER_ID or CONTAINER_NAME> //重启容器
docker rmi <IMGAE_ID or IMAGE_NAME> //删除镜像
重启docker
sudo systemctl restart docker
创建新的container ,样例:
nvidia-docker run -dit -p2345:22 --name=cuda1 -h=LAB_VM nvidia/cuda:10.1-cudnn7-runtime-ubuntu16.04
修改密码:
sudo passwd
scp传输文件
1.从服务器下载到windows本地
首先打开window本地cmd;
cmd中输入如下命令
// <portname>代表服务器端口
//username代表服务器用户名
//<ip address>代表服务器ip地址
//<address_server>代表服务器上要传送的文件夹的绝对地址
//<address_windows>代表本地接收的绝对地址
scp -P <portname> -r username@<ip address>:<address_server> <address_windows>
// -P表示端口号
// -r表示文件夹,去掉表示文件
再输入密码即可传送成功
如下
scp -P 5623 -r myname@13.25.26.225:/home/myname/xxxx D:\workpace\xxx
从windows本地传送到服务器
cmd中输入如下命令
// <portname>代表服务器端口
//username代表服务器用户名
//<ip address>代表服务器ip地址
//<address_server>代表服务器上要传送的文件夹的绝对地址
//<address_windows>代表本地接收的绝对地址
scp -P <portname> -r <address_windows> username@<ip address>:<address_server>
// -P表示端口号
// -r表示文件夹,去掉表示文件
再输入密码即可传送成功
如下
scp -P 5623 -r D:\workpace\xxx myname@13.25.26.225:/home/myname/xxxx
安装镜像环境
apt更新了清华源
安装了基础环境
gcc
vim Linux文本编辑库
openssh-server ssh远程连接库
net-tools 包含ifconfig,netstat等指令
iputils-ping 包含ping指令
wget 下载文件指令
curl 网络请求指令
git 版本控制
👇以下内容有误,可以参考ubuntu下Annaconda环境安装GPU的pytorch(docker镜像)
清华镜像源conda
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/
# 以上两条是Anaconda官方库的镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# 以上是Anaconda第三方库 Conda Forge的镜像
# for linux
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# for legacy win-64
conda config --remove-key channels //conda 恢复原下载源配置
CondaError: Downloaded bytes did not match Content-Length
在安装pytorch的时候安装到半路,显示CondaError: Downloaded bytes did not match Content-Length。
网上的解决方法是添加清华源的镜像,但我的已经是清华源镜像了,所以解决方法是把timeout放大,600还是不行,把时间延长到1000.0就成功安装了。命令如下:
conda config --set remote_read_timeout_secs 1000.0
清理conda
conda clean --all