有一个要注意的问题写在最前面吧。
我之前在公司安装这个一直不成功, 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