hans

hans

【Docker】在ubuntu14.04鏡像上安裝GPU顯卡驅動,CUDA和CUDNN


有一個要注意的問題寫在最前面吧。

我之前在公司安裝這個一直不成功, nvidia-smi 調不出 GPU 信息, 說驅動和庫版本不一致。

後來發現問題所在。

** 宿主機顯卡驅動版本要跟容器顯卡驅動版本一致!!! **

** 1. pull ubuntu 14.04 鏡像 **

sudo docker pull ubuntu:14.04

** 2. 安裝 nvidia-docker(這一步可做可不做,做了的話以後可以通過 nvidia-docker 命令啟動,不做的話第三步加 --
privileged 命令也能調用 GPU) **

地址: https://github.com/NVIDIA/nvidia-docker

wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
nvidia-docker run --rm nvidia/cuda nvidia-smi

** 3. 創建容器,進入 ubuntu 鏡像同時擁有真正 root 權限 **

docker run -it --privileged=true ubuntu:14.04

我這裡說一下 privileged
參數功能,設置為 true 的時候,讓 docker 的 root 擁有真正 root 的權限,可以調用宿主機硬件等,甚至可以讓你在 docker 中使用 docker

** 4. 新開一個 terminal, 訓練備好的 cuda 安裝包和 cudnn 壓縮包拷貝到容器中 **

docker ps
docker cp cuda.deb {@CONTAINER ID}:/root/
docker cp cudnn.tgz {@CONTAINER ID}:/root/

5. 回到容器的 terminal, 按照下面地址文章的中間部分內容,安裝 CUDA 和 CUDNN

【Caffe】Caffe,CUDA,cuDNN 安裝指南,以及各種問題的解決方法(Ubuntu14.04)

** 6. 保存更改到新的鏡像中 **

exit #退出容器
docker ps -a #查看容器ID頭四位xxxx
docker commit xxxx ubuntu:gpu

** 7. 我上傳的鏡像: **

docker pull renhanchi/ubuntu

這個鏡像是以 ubuntu14.04 為基礎,主要安裝了:

nvidia:375.66

CUDA:8.0

CUDNN:5.1

caffe

tensorflow-gpu:1.1

一定要記得 run 鏡像的時候用上面第三步的命令!!!

** 8. 保存加載本地鏡像 **

docker save imageID > filename
docker load < filename

docker export containID > filename
docker import - filename

第一種方法,通過 image 保存的鏡像會保存操作歷史,可以回滾到歷史版本。

第二種方法,通過容器保存的鏡像不會保存操作歷史,所以文件小一點。

第二種方法運行第三步命令,有時候進不去系統。

錯誤提示: docker: Error response from daemon: No command specified.

可以改用下面的命令:

docker run -it --privileged=true ubuntu:container /bin/bash
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。