
本文共 3008 字,大约阅读时间需要 10 分钟。
CentOS下Nvidia docker 2.0之安裝教程&踩坑實錄
前言
本篇參考,並記錄安裝過程所踩過的坑坑洞洞。
要求
官網裡列出了四個要求:
1. GNU/Linux x86_64 with kernel version > 3.10
使用uname -r
查詢,筆者機器的結果為:
3.10.0-514.6.2.el7.x86_64
2. Docker >= 1.12
使用docker -v
查詢,筆者機器的結果為:
Docker version 18.09.0, build 4d60db4
如果對Docker的版本有疑惑,或者是Docker版本太低,可以參考。
3. NVIDIA GPU with Architecture > Fermi (2.1)
關於查詢NVIDIA GPU architecture的方法,筆者試過到Nvidia的官網查,或是看有沒有linux指令可以查詢,但是都沒有找到。最後才在維基百科上看到一個完整列出各architecture下的GPU GeForce型號的表格。
先使用nvidia-smi -L
這個指令找到顯卡的GeForce版本,結果如下:
GPU 0: GeForce GTX 1080 (UUID: GPU-5ee9e385-7299-d14b-e94c-288298ae5234)
GPU 1: GeForce GTX 1080 (UUID: GPU-2d0c6c1e-0b17-3428-f42b-7ef5ffab32e8)
然後再去中的GPUs supported這個表格查詢。

4. NVIDIA drivers ~= 361.93 (untested on older versions)
使用nvidia-smi
查詢,筆者機器的結果為:

步驟
如果確認了系統、Docker版本、顯卡Architecture及顯卡驅動程式都滿足要求,就可以進入以下步驟:
1. 移除nvidia-docker 1.0
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{ } -n1 docker ps -q -a -f volume={ } | xargs -r docker rm -fsudo yum remove nvidia-docker
2. 設定repository
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
3. 更新repository的key
DIST=$(sed -n 's/releasever=//p' /etc/yum.conf)DIST=${ DIST:-$(. /etc/os-release; echo $VERSION_ID)}sudo rpm -e gpg-pubkey-f796ecb0sudo gpg --homedir /var/lib/yum/repos/$(uname -m)/$DIST/nvidia-docker/gpgdir --delete-key f796ecb0sudo yum makecache
4. 安裝nvidia-docker 2.0
sudo yum install nvidia-docker2
5. 重新載入Docker daemon的設定
sudo pkill -SIGHUP dockerd
6. 測試安裝是否成功
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
踩坑實錄
- 筆者在第三步碰到了以下錯誤:
…
[Errno 14] HTTPS Error 404 - Not Found
如果碰到同樣的錯誤,可以前往查看。
- 在第六步的時候又碰到了另一個錯誤:
docker: Error response from daemon: Unknown runtime specified nvidia.
See ‘docker run --help’.
如果碰到同樣的錯誤,可以前往查看。
- 在第六步還有可能碰到另一個錯誤:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused “process_linux.go:402: container init caused “process_linux.go:385: running prestart hook 1 caused \“error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig --device=0,1 --compute --utility --require=cuda>=8.0 --pid=4693 /var/lib/docker/overlay/e70cf536e76f503847825ad1bb8cbfca5a03466bf36be4148e9fe6659e85c2b9/merged]\\nnvidia-container-cli: initialization error: cuda error: no cuda-capable device is detected\\n\”””: unknown.
用nvidia-smi
,出現:
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
這代表需要安裝Nvidia driver,有詳細的教學。
參考連結
发表评论
最新留言
关于作者
