在安装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安装上回车即可安装。

centos7 主板驱动xinxi centos7.4安装显卡驱动_centos7 主板驱动xinxi

安装docker-ce和nvidia-docker2:

使用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
 EOFtee /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

centos7 主板驱动xinxi centos7.4安装显卡驱动_docker_02

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

将docker镜像迁移到其他服务器
如A服务器镜像迁移到B服务器
服务器A:docker save -o xxx.tar 迁移镜像名:版本     --xxx.tar是自定义文件名
服务器A:scp  xxx.tar root@B服务器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,

centos7 主板驱动xinxi centos7.4安装显卡驱动_centos_03


5、在cd /data/docker目录下就能查看到同步的信息了,

6、在重启docker,systemctl start docker

7、完成

dockerfile编写格式:

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

[root@gpu-no ASR]# more Dockerfile

FROM nvidia/cuda:10.1-base
MAINTAINER dwzhao2 dwzhao2@xxx.com
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;"]

[root@gpu-no ASR]# more Dockerfile
FROM nvidia/cuda:10.1-base
MAINTAINER dwzhao2 dwzhao2@xxx.com
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是容器命名,后面的是镜像名和版本号

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