基于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


原文地址:https://www.cnblogs.com/wjoyxt/p/14313011.html