【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

http://blog.csdn.net/renhanchi/article/details/72571291


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

你可能感兴趣的:(Docker)