基于CentOS 7在Docker中应用NVIDIA
1、安装docker
2、安装nvidia的驱动
3、安装nvidia-docker2
4、使用命令进行启动
提示: 宿主机没必要安装cuda和cudnn的包,build的时候不能使用`--runtime=nvidia`,要构建镜像的时候使用`nvidia`,文档下方有解释
在CentOS部署NVIDIA
切换到命令行
init 3
安装依赖
yum -y install gcc kernel-devel
关闭集显
sed -i 's@blacklist nvidiafb@#blacklist nvidiafb@g' /lib/modprobe.d/dist-blacklist.conf echo blacklist nouveau >> /lib/modprobe.d/dist-blacklist.conf echo options nouveau modeset=0 >> /lib/modprobe.d/dist-blacklist.conf mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak /usr/sbin/dracut /boot/initramfs-$(uname -r).img $(uname -r)
关闭集显后重启服务器
检查模块是否仍旧在加载(安装nvidia显卡驱动前需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动)
lsmod | grep nouveau
安装NVIDIA驱动
# 驱动下载地址https://www.geforce.cn/drivers # 请选择自己需要的版本号 # 需要加上权限 chmod +x NVIDIA-Linux-x86_64-418.67.run # 不使用命令,直接复制上面地址也可以在浏览器直接下载 ./NVIDIA-Linux-x86_64-418.67.run --no-opengl-files
安装nvidia-docker2
GitHub: NVIDIA/nvidia-docker ,可以在README中找到安装内容
以下是针对CentOS 7的部署
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo yum install -y nvidia-container-toolkit nvidia-docker2 systemctl restart docker
安装之后会配置 /etc/docker/daemon.json
{ "insecure-registries":[], "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"], "max-concurrent-downloads": 10, "max-concurrent-uploads": 20, "default-runtime": "nvidia", "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } }
测试和运行容器
$ sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
$ sudo docker run -d --name dance -v /data:/data --shm-size 4g --gpus all -p 9100:9100 motion_imitator:1.0.0