CentOS 7.5 离线环境下安装Nvidia T4 显卡驱动(cuda_10.1.105_418.39_linux.run) 、和docker-ce、nvidia-docker2运行环境

时间:2024-03-14 16:03:03

在安装docker-ce、nvidia-docker2之前可以先把cuda_10.1.105_418.39_linux.run显卡驱动先安装好

安装必须软件

yum install gcc kernel-headers kernel-devel -y

禁止nouveau

cp /local-repo/nvidia-installer-disable-nouveau.conf /etc/modprobe.d/

重建initramfs image文件

dracut --force

系统重启

reboot

验证是否禁止成功

lsmod | grep nouveau  #无结果显示即为成功,如果还显示可以百度下,因为每个版本的操作系统可能有所不一样

安装驱动

./cuda_10.1.105_418.39_linux.run

安装好以后输入nvidia-smi显示以下说明GPU驱动安装完成,注意在安装cuda_10.1.105_418.39_linux.run显卡时可能会进入一个GPU驱动安装界面通过上下键移动到install安装上回车即可安装。

CentOS 7.5 离线环境下安装Nvidia T4 显卡驱动(cuda_10.1.105_418.39_linux.run) 、和docker-ce、nvidia-docker2运行环境

安装docker-ce和nvidia-docker2:

CentOS7.5-nvidiace-nvidia-docker2资源下载地址:

https://download.csdn.net/download/weixin_40754332/12667592

使用root用户执行解压缩

unzip CentOS7.5-nvidiace-nvidia-docker2.zip -d  /

安装createrepo

rpm -ivh /local-repo/docker/createrepo-0.9.9-28.el7.noarch.rpm

备份系统默认源

cd /etc/yum.repos.d/

mkdir repobak

mv *.repo repobak/

创建本地源

cp /local-repo/local.repo /etc/yum.repos.d/                            ---注意路径要根据自己实际情况调整目录路径
createrepo /local-repo/docker
createrepo /local-repo/libnvidia-container
createrepo /local-repo/nvidia-container-runtime
createrepo /local-repo/nvidia-docker
yum clean all
yum makecache
 

安装docker-ce和nvidia-docker2

yum install docker-ce nvidia-docker2

设置nvidia docker runtime

mkdir -p /etc/systemd/system/docker.service.d
tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF

tee /etc/docker/daemon.json <<EOF
{
  "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
}
EOF
重启docker:

pkill -SIGHUP dockerd
systemctl daemon-reload
systemctl restart docker
添加用户到docker组

gpasswd -a $USER docker

newgrp docker

查看 GPU 信息并拉取GPU镜像

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

CentOS 7.5 离线环境下安装Nvidia T4 显卡驱动(cuda_10.1.105_418.39_linux.run) 、和docker-ce、nvidia-docker2运行环境

最后在说一下关于docker使用的一些命令:

将docker镜像迁移到其他服务器
如A服务器镜像迁移到B服务器
服务器A:docker save -o xxx.tar 迁移镜像名:版本     --xxx.tar是自定义文件名
服务器A:scp  xxx.tar [email protected]服务器ip:/root/
服务器B:docker load -i xxx.tar   

迁移完成可使用docker images 查看是否迁移成功。 --前提另外一台也安装了docker环境

docker安装目录迁移

将docker从默认/var/lib/目录迁移到/data/目录下,迁移之前先关闭docker,systemctl stop docker
1、在/data目录下新建docker目录
2、切换到/var/lib/目录,把原先的docker目录进行备份 mv docker docker07
3、在/data目录下创建软连接ln -s /data/docker/  /var/lib/
4、切换到/var/lib/下查看软链接并把之前备份的docker07在还原回去,mv docker07/* docker,

CentOS 7.5 离线环境下安装Nvidia T4 显卡驱动(cuda_10.1.105_418.39_linux.run) 、和docker-ce、nvidia-docker2运行环境
5、在cd /data/docker目录下就能查看到同步的信息了,
6、在重启docker,systemctl start docker
7、完成

dockerfile编写格式:

这是本地nginx的dockerfile文件编写格式

[[email protected] ASR]# more Dockerfile

FROM nvidia/cuda:10.1-base
MAINTAINER dwzhao2 [email protected]
WORKDIR /data/ASR/
COPY ./nginx.tar ./nginx.tar
RUN tar xvf nginx.tar
WORKDIR /data/ASR/nginx/nginx_bin/sbin
RUN chmod +x nginx
ENTRYPOINT ["/data/ASR/nginx/nginx_bin/sbin/nginx", "-g", "daemon off;"]

[[email protected] ASR]# more Dockerfile
FROM nvidia/cuda:10.1-base
MAINTAINER dwzhao2 [email protected]
WORKDIR /data/ASR/
COPY ./route.tar ./route.tar
RUN tar xvf route.tar
WORKDIR /data/ASR/route/bin
#RUN chmod +x start.sh
CMD ["/data/ASR/route/bin/route"]

以nginx为例,编写完成以后可以在dockerfile当前目录执行

docker build -t nginx:v1 .   --进行镜像打包

打包完成后使用docker run 启动和创建容器(也可以使用nvidia-docker run,具体可以根据实际情况看哪个组件调用GPU,不调用GPU的组件可以使用docker run ,最新版本的docker 20可以不使用nvidia-docker,我这个版本是docker 18版本因此需要

docker run --net=host  -d  -v /data/ASR/nginx/nginx_bin/conf/nginx.conf:/data/ASR/nginx/nginx_bin/conf/nginx.conf --name=nginx61 nginx:v1

---注意, --net=host是将宿主机和容器网络进行共享,这样就不用将nginx端口在进行映射,就可以使用了,-v是挂载的nginx目录或文件

--name是容器命名,后面的是镜像名和版本号

其它一些基础命令可以自行百度,谢谢,