CentOS7 Nvidia Docker环境如何搭建
本文小编为大家详细介绍“CentOS7 Nvidia Docker环境如何搭建”,内容详细,步骤清晰,细节处理妥当,希望这篇“CentOS7 Nvidia Docker环境如何搭建”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
环境:
系统:centos7 7.4 1708
显卡:nvidia 1080ti
下载所有需要的东东
1、docker-ce yum repo :
2、nvidia-docker yum repo :
3、nvidia cuda yum repo :
4、nvidia cudnn :
这个东西需要注册nvidia账号,就不给直接下载地址了。
5、nvidia驱动
按自己的显卡型号下载
6、nvidia docker file :
这里面可以看到很多dockerfile,选择
9.0-base-centos7 (9.0/base/dockerfile)
其他的cuda9.1这些应该也可以用,另外有像devel和runtime这样的,其实就是yum安装的cuda包不太一样,没多大关系。
点进去后复制下来保存为dockerfile文件,但是之后搞的时候发现有点问题,修改了一下,可以从这儿复制
from centos:7
label maintainer "nvidia corporation <cudatools@nvidia.com>"
run nvidia_gpgkey_sum=d1be581509378368edeec8c1eb2958702feedf3bc3d17011adbf24efacce4ab5 && \
curl -fssl https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80.pub | sed '/^version/d' > /etc/pki/rpm-gpg/rpm-gpg-key-nvidia && \
echo "$nvidia_gpgkey_sum /etc/pki/rpm-gpg/rpm-gpg-key-nvidia" | sha256sum -c --strict -
#copy cuda.repo /etc/yum.repos.d/cuda.repo
env cuda_version 9.0.176
env cuda_pkg_version 9-0-$cuda_version-1
#run yum install -y \
# cuda-cudart-$cuda_pkg_version && \
# ln -s cuda-9.0 /usr/local/cuda && \
# rm -rf /var/cache/yum/*
# nvidia-docker 1.0
label com.nvidia.volumes.needed="nvidia_driver"
label com.nvidia.cuda.version="${cuda_version}"
run echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \
echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
env path /usr/local/nvidia/bin:/usr/local/cuda/bin:${path}
env ld_library_path /usr/local/nvidia/lib:/usr/local/nvidia/lib64
# nvidia-container-runtime
env nvidia_visible_devices all
env nvidia_driver_capabilities compute,utility
env nvidia_require_cuda "cuda>=9.0"
所有的文件
[root@localhost nvidia]# pwd
/root/nvidia
[root@localhost nvidia]# ll
total 420000
drwxr-xr-x. 2 root root 4096 feb 10 10:50 centos-gpu
-rw-r--r--. 1 root root 3335 jan 29 10:36 cuda-repo-rhel7-9.1.85-1.x86_64.rpm
-rw-r--r--. 1 root root 348817823 feb 6 16:26 cudnn-9.0-linux-x64-v7.tgz
-rw-r--r--. 1 root root 2424 feb 9 10:36 docker-ce.repo
-rw-r--r--. 1 root root 796 feb 9 17:11 nvidia-docker.repo
-rwxr-xr-x. 1 root root 81242220 jan 31 14:19 nvidia-linux-x86_64-390.25.run
centos-gpu里有dockerfile文件
准备工作
直接上命令,一看就明白
[root@localhost nvidia]# cp docker-ce.repo nvidia-docker.repo /etc/yum.repos.d/
[root@localhost nvidia]# rpm -ivh cuda-repo-rhel7-9.1.85-1.x86_64.rpm
[root@localhost nvidia]# yum install epel-release
[root@localhost nvidia]# yum install gcc gcc-c++
[root@localhost nvidia]# yum install kernel*
安装驱动
[root@localhost nvidia]# echo "blacklist nouveau" >>/etc/modprobe.d/blacklist.conf
[root@localhost nvidia]# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
[root@localhost nvidia]# init 3
[root@localhost nvidia]# chmod +x nvidia-linux-x86_64-390.25.run
[root@localhost nvidia]# ./nvidia-linux-x86_64-390.25.run
大概步骤就是这样,如果出现问题,可以直接网上找一找,应该不会太难
安装和启动docker
[root@localhost nvidia]# yum install docker-ce nvidia-docker
[root@localhost nvidia]# systemctl enable docker
[root@localhost nvidia]# systemctl start docker
[root@localhost nvidia]# systemctl enable nvidia-docker
[root@localhost nvidia]# systemctl start nvidia-docker
记得显卡驱动一定要先装好,nvidia-docker才能正常启动
制作docker镜像
[root@localhost nvidia]# yum install cuda-cudart-9-0-9.0.176-1
[root@localhost nvidia]# ln -s cuda-9.0 /usr/local/cuda
[root@localhost nvidia]# nvidia-docker build -t centos-nvidia /root/nvidia/centos-gpu
如果你是用的我修改的dockfile应该不会有什么问题,如果你是用的原版的,可能会在
#copy cuda.repo /etc/yum.repos.d/cuda.repo
出错,但是咱们已经下载cuda 的 repo,并安装了,所以这一步可以不用。
镜像制作结束后,可以用命令 docker images 查看一下:
[root@localhost centos-gpu]# docker images
repository tag image id created size
centos-nvidia latest a02c8e0ad5ca 2 hours ago 207mb
如果有这一行应该就算是成功了。
生成docker
[root@localhost centos-gpu]# nvidia-docker run --name="centos-gpu2" -ti a02c /bin/bash
[root@34d532e76913 /]# nvidia-smi
sat feb 10 03:42:20 2018
+-----------------------------------------------------------------------------+
| nvidia-smi 390.25 driver version: 390.25 |
|-------------------------------+----------------------+----------------------+
| gpu name persistence-m| bus-id disp.a | volatile uncorr. ecc |
| fan temp perf pwr:usage/cap| memory-usage | gpu-util compute m. |
|===============================+======================+======================|
| 0 geforce gtx 108... off | 00000000:02:00.0 off | n/a |
| 23% 17c p8 8w / 250w | 10mib / 11178mib | 0% default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| processes: gpu memory |
| gpu pid type process name usage |
|=============================================================================|
| no running processes found |
+-----------------------------------------------------------------------------+
[root@34d532e76913 /]# exit
如果类似于上面的输出结果,差不多就可以了。
使用docker
[root@localhost centos-gpu]# nvidia-docker ps -a
container id image command created status ports names
34d532e76913 a02c "/bin/bash" 3 minutes ago exited (0) 12 seconds ago centos-gpu2
d16c2db2bf2e a02c "/bin/bash" 2 hours ago exited (0) 19 minutes ago centos-gpu
370671db8df1 3afd "/bin/bash" 19 hours ago exited (137) 3 hours ago centos-dronemap
[root@localhost centos-gpu]# nvidia-docker start 34d5
34d5
[root@localhost centos-gpu]# nvidia-docker cp /root/nvidia/cuda-repo-rhel7-9.1.85-1.x86_64.rpm 34d532e76913:/root
[root@localhost centos-gpu]# nvidia-docker exec -ti 34d5 /bin/bash
[root@34d532e76913 /]# cd
[root@34d532e76913 ~]# ls
anaconda-ks.cfg cuda-repo-rhel7-9.1.85-1.x86_64.rpm
[root@34d532e76913 ~]# rpm -ivh cuda-repo-rhel7-9.1.85-1.x86_64.rpm
warning: cuda-repo-rhel7-9.1.85-1.x86_64.rpm: header v3 rsa/sha512 signature, key id 7fa2af80: nokey
preparing... ################################# [100%]
updating / installing...
1:cuda-repo-rhel7-9.1.85-1 ################################# [100%]
[root@34d532e76913 ~]# yum install cuda-*9-0*
这里需要注意的是类似于 34d532e76913 这样的编号,是docker自动生成的,运行的时候需要修改一下。
到目前基本上cuda的环境就搭建好了。
tensorflow
把下载的cudnn包用docker cp复制到docker中,解压下来,将里面的lib64路径添加到 /etc/ld.so.conf.d/nvidia.conf 中,运行ldconfig,就ok了。
上面的环境好了以后,再安装python等等软件,这就不说了。之后tensorflow的一些例子就可以在docker里运行了。当然你得安装gpu版本的,才能发挥显卡的威力。
读到这里,这篇“CentOS7 Nvidia Docker环境如何搭建”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341