有一個要注意的問題寫在最前面吧。
我之前在公司安裝這個一直不成功, 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