ubuntu上使用docker运行需要使用GPU的程序

能在docker中运行使用GPU的程序,首先必须安装了docker和nvidia-docker,具体安装方法参考前两篇文章.

本文使用Dockerfile的方式创建镜像

nvidia docker镜像源地址为https://hub.docker.com/r/nvidia/cuda,可以根据自己的需要拉取镜像源,本文使用的镜像源为ubuntu14.04+cuda8.0+cudnn7.0

1 编写Dockerfile
Dockerfile文件内容为:
#拉取镜像源
FROM nvidia/cuda:8.0-cudnn7-runtime-ubuntu14.04
#指定镜像维护人,非必须项
MAINTAINER Ding Yu
#将自己的应用程序拷贝到容器中,本文拷贝了自己实现的人脸识别程序,即将本地整个FaceRecognition/目录
#(注:宿主机中拷贝的目录必须跟Dockerfile文件所在目录或子目录下,而不能在宿主机的其他目录下)
#中的所有内容拷贝到容器的/tmp目录下
COPY FaceRecognition/ /tmp/
#设置容器使用中文字符集,这个主要是解决docker中中文乱码的问题,因为我的人脸识别程序需要在图片上显示人的中文名
ENV LANG C.UTF-8
#开放容器的80端口
EXPOSE 80

2 编译并生成镜像
sudo docker build -t="test/face" .
注:最后面的.代表在当前目录下查找Dockerfile

3 查看生成的docker镜像
sudo docker images
可以看到:
REPOSITORY          TAG                                                  IMAGE ID               CREATED             SIZE
test/face                     latest                                               7e4526397e5a        3 hours ago          2.13GB
nvidia/cuda                8.0-cudnn7-runtime-ubuntu14.04    d5491c845e53        2 months ago       1.02GB

4 创建并运行docker容器
sudo docker run --runtime=nvidia -it test/face

5 此时进入到容器中,在容器的/tmp目录下就是我们拷贝过来的文件
cd tmp/
ls

6 退出容器
exit

7 查看已创建的容器
sudo docker ps -a
可以看到:
CONTAINER ID        IMAGE             COMMAND       CREATED           STATUS                         PORTS           NAMES
ea8ce13b3a84          test/face           "/bin/bash"         3 hours ago         Exited (0) 2 hours ago                          hungry_hodgkin

8 再次进入该容器
sudo docker start ea8ce13b3a84
sudo docker attach ea8ce13b3a84

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值