nvidia docker配置GPU 深度学习镜像
使用目标
通过nvidia docker搭建在宿主机上搭建装有cuda,cudnn,opencv,darkent的基础镜像,从而便于后续基于GPU目标识别应用的容器化部署和管理
安装流程
安装nvidia docker
卸载nvidia-docker和其他GPU容器
1
2docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker添加package repositories
1
2
3
4
5
6curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update安装 nvidia-docker2
1
2sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
安装cuda基础镜像
安装指定版本cuda
1
nvidia-docker run --rm -ti nvidia/cuda:{cuda版本} nvcc --version
更新基础cuda镜像
更新cuda镜像的方式有很多,例如:通过DockerFile文件更新镜像,通过bash编辑镜像然后commit,我这里使用的方法是,先通过cuda镜像生成容器,通过编辑容器,将容器保存为新的镜像文件,这样的原因在于可以很方便的通过docker cap命令拷贝文件进入容器中
预先准备
1 | 1、更换apt安装镜像源 |
安装OpenCV
1 | 1、下载opencv源码包,opencv源码包有1个多G,可以在gitee上clone源码,速度很快 |
安装cudnn
1 | 1、下载与cuda版本对应的cudnn |
编译darknet
1 | 1、下载ABdarknet源码 |
根据基础镜像创建容器
1 | nvidia-docker run -it name {容器名称} {镜像名称} {容器位置} |
注意:1、一定要用nvidia-docker创建容器,否者会出现cudnn not found的问题
2、调用darknet时如果出现 error while loading shared libraries:libopencv_highgui.so.3.4: cannot open shared object file的问题,编辑 /etc/ld.so.conf文件,加上include /etc/ld.so.conf.d/*.con,然后执行ldconfig,在darknet目录下make clean后重新make