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
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。