ubuntu20.04下nvidia驱动安装,docker/nvidia-docker安装
文章目录
前言
由于现在深度学习各个开源库对cuda/cudnn/pytorch等环境要求各不相同,所以很多时候采用docker方式部署不同的深度学习框架,本文主要记录ubuntu20.04下驱动安装、docker/nvidia-docker安装,修改docker容器等data的存储路径、ubuntu下的用户加入到docker组里等
一、驱动安装
1.安装驱动
切换root用户,关闭图像界面, 禁用第三方显卡驱动
# 切换root用户
sudo su
# 关闭图像界面
systemctl set-default multi-user.target
systemctl get-default
# 禁用第三方显卡驱动
vim /etc/modprobe.d/blacklist.conf最后添加
blacklist nouveau
options nouveau modeset=0
#更新内核
update-initramfs -u
# 系统重启
reboot
重新进入系统后
sudo su
# 安装驱动
chmod +x ./NVIDIA-Linux-x86_64-460.106.00.run
./NVIDIA-Linux-x86_64-460.106.00.run --no-opengl-files
# NO->一路回车
# 校验是否安装成功
nvidia-smi
# 将驱动模式设置为常住内存:
nvidia-smi -pm 1
2.(可选)cuda安装
chmod +x cuda-10.0.run
./cuda-10.0.run --no-opengl-libs
# 依次执accept -> no -> yes -> 默认 -> yes -> no
二、nvidia-docker安装
从这里下载安装包,存放到docker-ubuntu-20.04.4/docker目录下,也可以直接从我上传的资源下载
1.docker安装
# download deb from https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/
cd docker-ubuntu-20.04.4/docker
sudo dpkg -i ./containerd.io_1.6.26-1_amd64.deb docker-ce_24.0.7-1~ubuntu.20.04~focal_amd64.deb docker-ce-cli_24.0.7-1~ubuntu.20.04~focal_amd64.deb ./docker-buildx-plugin_0.11.2-1~ubuntu.20.04~focal_amd64.deb docker-compose-plugin_2.21.0-1~ubuntu.20.04~focal_amd64.deb
sudo systemctl stop docker
sudo systemctl stop docker.socket
# 修改dockerdata的存放路径以及保留日志大小
sudo vi /etc/docker/daemon.json
{"registry-mirrors":["https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com"],
"data-root": "/home/your/data/docker_data",
"log-opts":{"max-file":"10","max-size":"200m"}
}
# 使生效
sudo systemctl daemon-reload
sudo systemctl restart docker
# 确认docker是否安装成功
sudo docker ps
2.nvidia-docker安装
安装包上文提到的资源里都有
sudo systemctl stop docker
sudo systemctl stop docker.socket
cd docker-ubuntu-20.04.4/nvidia-docker
sudo dpkg -i *.deb
# 修改daemon.json
sudo vi /etc/docker/daemon.json
{
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia",
"registry-mirrors":["https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com"],
"data-root": "/home/your/data/docker_data",
"log-opts":{"max-file":"10","max-size":"200m"}
}
# 使生效
sudo systemctl daemon-reload
sudo systemctl restart docker
# 将docker-compose拷贝到/usr/bin下面
cd docker-ubuntu-20.04.4/
sudo chmod +x docker-compose
sudo cp docker-compose /usr/bin/
三、用户添加到docker组
ubuntu下的用户加入到docker组里- nvidia-docker
# 验证是否有Docker用户组
grep docker /etc/group
# sudo groupadd docker
# 将当前登录用户添加到Docker用户组,比如当前用户名为dl,这添加语句如下
sudo gpasswd -a dl docker
# 更新Docker用户组
newgrp docker
# 搞一个镜像测试一下
docker pull nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04
nvidia-docker run -it --name=nvidia-docker-test --net=host --gpus all --shm-size=16g nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04 bash
# 进入容器后,nvidia-smi看是否能用
nvidia-smi
四、设置是否随docker重启容器自动重启
# 开启自动重启
docker update --restart=always 容器名字或者容器ID
# 关闭自动重启
docker update --restart=no 容器名字或者容器ID