sentos7离线安装nvidia驱动和nvidia-docker

内核版本:
3.10.0-957.el7.x86_64

docker版本:
17.03.0-ce

gpu版本:
tesla v100s

1、首先下载nvidia驱动NVIDIA-LINUX-x86_64-418.181.07.run
2、该docker版本支持的nvidia-docker版本:1版本
nvidia-docker-1.0.1-1.x86_64.rpm

3、docker测试镜像:docker pull nvidia/cuda:9.0-base
下载好之后保存镜像,以便传到服务器:

docker save nvidia/cuda:9.0-base > nvidia.tar 

4、下载安装依赖:
要装的三个依赖分别是,gcc、kernel-devel、dkms,其中需要注意的是,kernel-devel的版本需要与当前内核的版本一致,不然后面会出现找不到文件的情况。rpm文件下载方式:http://rpm.pbone.net/

查看我的内核版本:

 uname -r

3.10.0-957.el7.x86_64

查看一下可以安装的版本:

yum list | grep kernel-devel

开始安装:

1、安装rpm包:

yum -y install 下载的依赖包

2、阻止 nouveau 模块的加载
在配置文件中禁用nouveau

vim /lib/modprobe.d/dist-blacklist.conf

在最后加上

blacklist nouveau
options nouveau modeset=0

3、重新建立initramfs image文件
备份原来的 initramfs nouveau image镜像

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)

做完这个步骤 重启reboot, 重启后验证驱动是否被禁用

lsmod | grep nouveau

如果无结果显示则表明成功禁用

4、安装nvidia驱动:

sh ./NVIDIA-LINUX-x86_64-418.181.07.run --kernel-source-path=/usr/src/kernels/3.10.0-957.el7.x86_64

如果出现ERROR:you appear to be running an X server……
点击ok,结束安装
关闭X窗口

service lightdm stop

进入init3:(运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 )

init 3

再次执行:

sh ./NVIDIA-LINUX-x86_64-418.181.07.run --kernel-source-path=/usr/src/kernels/3.10.0-957.el7.x86_64

没有报x server的错误

如果出现:
The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。

Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。

Nvidia’s 32-bit compatibility libraries? 选择 No 继续。

Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续

此时安装结束,可以测试一下是否安装成功:

nvidia-smi

出现下图则证明安装成功:
在这里插入图片描述
5、安装nvidia-docker:
前提是已经安装成功docker17

rpm -ivh nvidia-docker-1.0.1-1.x86_64.rpm

测试:
启动nvidia-docker

systemctl start nvidia-docker
systemctl status nvidia-docker.service

出现日志里有:
active:active(running)since …则证明安装成功

下面测试从docker 是否能够访问宿主机的gpu
把下载好的镜像加载到docker中

docker load < nvidia.tar

nvidia-docker run --rm nvidia/cuda:9.0-base nvidia-smi

在这里插入图片描述

安装成功!!!

注意:nvidia-docker1和nvidia-docker2区别
那么两个版本之间有何区别呢?
(1) 虽然nvidia-docker1 和nvidia-docker2 都依赖于docker, 但版本1是一个整体的可行性文件,内部实现连接docker容器与硬件GPU,版本2将整体部分拆分层一个基于docker的薄封装(cat /usr/bin/nvidia-docker 可查看)和一个插件(nvidia-container-runtime , 该插件直接实现一个 hook的功能,连接GPU硬件),在版本2 的nvidia-docker 可发现,实际上还是运行docker ,只是指定了 --runtime 参数,同时指定GPU设备,默认全部GPU设备。
(2)当需要运行一个使用GPU的容器时,版本1 必须用nvidia-docker run/create 启动, 版本2可通过设置 守护进行default-runtime参数可直接通过 docker run/create 直接启动GPU容器

docker service create 启动

执行

docker service create --generic-resource "gpu=1" 镜像名称

若报unknown flag --generic-resource,则按一下步骤执行

编辑daemon.json,若没有,则创建一个

{
  "node-generic-resources": [
    "NVIDIA-GPU=UUID1"
  ]
}

UUID1通过nvidia-smi -a获取

重启docker

systemctl daemon-reload
systemctl restart docker

启动

docker service create --generic-resource "gpu=1" 镜像名称
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柒然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值