首先在联网的机器上制作本地软件源,要保证联网的机器和不联网的机器操作系统版本一样。
#修改yum配置文件,保留安装包
sudo vi /etc/yum.conf
#找到keepcache参数,设置为1
#因为Docker支持的只支持最新的内核版本,所以需要升级
sudo yum -y update
#或者只更新内核
#sudo yum -y update kernel
sudo reboot
#下载并安装需要使用的工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 createrepo
#添加阿里的Docker源(也可以使用其他的Docker源)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新并安装Docker-CE
sudo yum makecache fast
#因为nvidia-docker和docker的版本有兼容问题,随意最好安装最新版本的前一两个版本
sudo yum -y install docker-ce-18.09.0-3.el7
#启动Dcoker服务,并测试
sudo systemctl start docker
sudo docker version
# Add the Nvidia Docker package repositories
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
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo yum install -y nvidia-docker2-2.0.3-1.docker18.09.0.ce.noarch
sudo pkill -SIGHUP dockerd
# Test nvidia-smi with the latest official CUDA image
sudo docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
#创建本地目录
sudo mkdir -p /yum/local
#拷贝所有缓存的rpm包
sudo find /var/cache/yum/x86_64/$VERSION_ID/ -name "*.rpm" | xargs -i cp {} /yum/local
#创建repo文件
sudo vi /etc/yum.repos.d/CenOS-Local.repo
#输入以下内容
[Local]
name=Local Yum
baseurl=file:///yum/
gpgcheck=0
gpgkey=
enabled=1
注意:确认屏蔽其他的联网软件源:在/etc/yum.repos.d目录下,把所有的联网软件源的repo文件都暂时修改名字。
#把本地软件源的repo文件拷贝到系统中
sudo cp CenOS-Local.repo /etc/yum.repos.d
#针对repo文件中的baseurl创建目录
sudo mkdir -p /yum/local
#把所有的rpm包拷贝到/yum/local中
#安装系统工具createrepo及依赖包(软件包名称中的版本号根据实际情况可以修改)
sudo rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
sudo rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
sudo rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
sudo rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
#建立本地软件源
sudo createrepo /yum
sudo yum clean all
sudo yum makecache
#安装Docker,启动服务,测试
sudo yum -y install docker-ce
sudo service docker start
sudo docker version
#安装nvidia docker
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
#安装系统工具
sudo yum -y install gcc kernel-devel kernel-headers epel-release dkms
sudo yum install -y "kernel-devel-uname-r == $(uname -r)"
sudo vim /etc/default/grub
在“GRUB_CMDLINE_LINUX”中添加:
rd.driver.blacklist=nouveau nouveau.modeset=0
#生成配置
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
#修改配置文件,屏蔽nouveau驱动
sudo vim /lib/modprobe.d/dist-blacklist.conf
sudo vim /etc/modprobe.d/blacklist.conf
#将nvidiafb注释掉。
blacklist nvidiafb
然后添加以下语句:
blacklist nouveau
options nouveau modeset=0
#重做 initramfs 镜像
sudo cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
sudo dracut --force /boot/initramfs-$(uname -r).img $(uname -r)
#runlevel 改为 3,重启
sudo init 3
sudo reboot
#查看nouveau是否已经禁用,命令执行结果应该为空
lsmod | grep nouveau
#安装驱动,注意kernel的版本、驱动文件版本要按照实际的系统修改
sudo ./NVIDIA-Linux-x86_64-410.79.run --kernel-source-path=/usr/src/kernels/3.10.0-693.5.2.el7.x86_64 -k $(uname -r)
如果安装驱动的过程中,内核的头文件无法安装(sudo yum install -y "kernel-devel-uname-r == $(uname -r)"),就需要升级系统内核 ,内核的版本要和之前安装的kernel-devel版本对应。
#导入Key
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#安装elrepo的yum源
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
#安装内核
sudo yum --enablerepo=elrepo-kernel install kernel-lt -y
需要首先在联网的机器上制作本地软件源,再到不联网的机器上安装。本地软件源制作参考前面的描述,这里就不详细说明了。
#下载对应版本的内核rpm包,需要与之前安装的kernel-devel的版本对应
wget http://ftp.scientificlinux.org/linux/scientific/7.0/x86_64/updates/security/kernel-3.10.0-957.1.3.el7.x86_64.rpm
#安装内核
sudo yum install kernel-3.10.0-123.1.2.el7.x86_64.rpm
#重启
sudo reboot