溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CentOS7 Nvidia Docker環(huán)境如何搭建

發(fā)布時(shí)間:2022-03-24 16:36:03 來(lái)源:億速云 閱讀:225 作者:iii 欄目:web開(kāi)發(fā)

本文小編為大家詳細(xì)介紹“CentOS7 Nvidia Docker環(huán)境如何搭建”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“CentOS7 Nvidia Docker環(huán)境如何搭建”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

環(huán)境:

系統(tǒng):centos7 7.4 1708

顯卡:nvidia 1080ti

下載所有需要的東東

1、docker-ce yum repo :

2、nvidia-docker yum repo :

3、nvidia cuda yum repo :

4、nvidia cudnn :

這個(gè)東西需要注冊(cè)nvidia賬號(hào),就不給直接下載地址了。

5、nvidia驅(qū)動(dòng)

按自己的顯卡型號(hào)下載

6、nvidia docker file :

這里面可以看到很多dockerfile,選擇

9.0-base-centos7 (9.0/base/dockerfile)

其他的cuda9.1這些應(yīng)該也可以用,另外有像devel和runtime這樣的,其實(shí)就是yum安裝的cuda包不太一樣,沒(méi)多大關(guān)系。

點(diǎn)進(jìn)去后復(fù)制下來(lái)保存為dockerfile文件,但是之后搞的時(shí)候發(fā)現(xiàn)有點(diǎn)問(wèn)題,修改了一下,可以從這兒復(fù)制

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文件

準(zhǔn)備工作

直接上命令,一看就明白

[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*

安裝驅(qū)動(dòng)

[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

大概步驟就是這樣,如果出現(xiàn)問(wèn)題,可以直接網(wǎng)上找一找,應(yīng)該不會(huì)太難

安裝和啟動(dòng)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

記得顯卡驅(qū)動(dòng)一定要先裝好,nvidia-docker才能正常啟動(dòng)

制作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應(yīng)該不會(huì)有什么問(wèn)題,如果你是用的原版的,可能會(huì)在

#copy cuda.repo /etc/yum.repos.d/cuda.repo

出錯(cuò),但是咱們已經(jīng)下載cuda 的 repo,并安裝了,所以這一步可以不用。

鏡像制作結(jié)束后,可以用命令 docker images 查看一下:

[root@localhost centos-gpu]# docker images
repository       tag         image id      created       size
centos-nvidia      latest       a02c8e0ad5ca    2 hours ago     207mb

如果有這一行應(yīng)該就算是成功了。

生成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

如果類(lèi)似于上面的輸出結(jié)果,差不多就可以了。

使用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*

這里需要注意的是類(lèi)似于 34d532e76913 這樣的編號(hào),是docker自動(dòng)生成的,運(yùn)行的時(shí)候需要修改一下。

到目前基本上cuda的環(huán)境就搭建好了。

tensorflow

把下載的cudnn包用docker cp復(fù)制到docker中,解壓下來(lái),將里面的lib64路徑添加到 /etc/ld.so.conf.d/nvidia.conf 中,運(yùn)行l(wèi)dconfig,就ok了。

上面的環(huán)境好了以后,再安裝python等等軟件,這就不說(shuō)了。之后tensorflow的一些例子就可以在docker里運(yùn)行了。當(dāng)然你得安裝gpu版本的,才能發(fā)揮顯卡的威力。

讀到這里,這篇“CentOS7 Nvidia Docker環(huán)境如何搭建”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI