Docker学习(下)nvidia-docker2的安装和使用(yolov4flask模型部署)

15 篇文章 2 订阅
5 篇文章 0 订阅

前前篇(安装Docker):https://blog.csdn.net/qq_34717531/article/details/107933650

前篇(yolov3flask部署(cpu运行,没装cuda)):https://blog.csdn.net/qq_34717531/article/details/107938337

安装的docker是只支持cpu的,为了使用gpu,我们要安装nvidia-docker2。

一、安装nvidia-docker2

可参考:https://github.com/NVIDIA/nvidia-docker

Ubuntu 16.04/18.04/20.04, Debian Jessie/Stretch/Buster:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
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 && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

cuda10测试:

sudo docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

 

二、配置cuda10+cudnn7+opencv4.4

下载一个cuda10的docker镜像(https://hub.docker.com/r/nvidia/cuda),并建立容器。

docker pull yadongw/cuda10.0-cudnn7-devel-ubuntu16.04-python3.5:latest

docker run -d  -it -p 4555:4555 --name=ycc --gpus all yadongw/cuda10.0-cudnn7-devel-ubuntu16.04-python3.5:latest bash

将本机opencv4.4复制到容器。

docker cp /home/ycc/opencv-4.4.0 73a9937be531:/home/
sudo docker exec -ti ycc bash

编译opencv4.4:https://blog.csdn.net/qq_34717531/article/details/107763872

可看到编译了cuda10 和 cudnn7.5 。

至此,cuda10配套的410显卡驱动 + cuda10 + cudnn7.5 + opencv4.4 在容器中配置完成。

 

三、安装flask,并测试yolov4flask

将python默认版本改为3.5:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

安装pip3,flask和pillow。

apt-get install python3-pip

将本机yolov4flask复制到容器,

docker cp /home/ycc/yolov4flask 73a9937be531:/home/

四、打包成docker镜像

docker commit -a "ycc" -m "yolov4flask" 73a9937be531 yolov4flask:v1

镜像打包好了,就是有点大啊,精简了一下,重新打包,还是有着6.68G:

可以直接下载opencv4.4(Python+opencv4.4 ,无cuda版本 ,可用于yolov4 cpu检测), 这个版本比较小:

sudo docker pull opencvcourses/opencv:440

 打包后也有3.36G(cpu版本)。

 

五、docker镜像部署

将自己打包的docker镜像进行部署,需要用到save和load。

docker save yolov4flask -o yolov4flask.tar

save将docker镜像保存为tar格式,放入服务器后,使用load,镜像就在服务器中了。

docker load -i yolov4flask.tar  

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是一种容器化平台,可以用来打包和发布软件应用程序以及其依赖项,使其能够在不同的环境中运行。Flask是一个Python的Web框架,用于构建轻量级的、负载较小的Web应用程序。机器学习模型是一种用于训练和预测数据的算法。 结合这些概念,可以使用Docker部署一个基于Flask的机器学习模型。首先,我们可以将机器学习模型开发为一个Python脚本或Jupyter Notebook。然后,使用Docker将该脚本打包为一个容器映像。 在编辑Dockerfile文件时,我们可以从适当的基础映像(如Python映像)开始,安装所需的Python库和依赖项。随后,将机器学习模型的代码和数据复制到容器中,并设置一个Flask的应用程序来提供API接口。 通过配置Dockerfile文件,我们可以指定容器运行时所需的环境变量和端口号。这样,我们就可以在容器中运行Flask应用程序,并暴露一个API端口供外部访问。 一旦创建了该容器映像,我们可以使用Docker容器命令来运行容器,并将其部署到云平台或本地服务器上。通过调用API接口,我们可以向容器发送数据,并获取机器学习模型的预测结果。 使用Docker部署Flask机器学习模型带来以下好处: 1. 隔离性:容器化的机器学习模型可以隔离运行在不同环境中,保证了模型的可靠性和可复现性。 2. 扩展性:通过在云平台上部署容器,可以轻松地扩展模型的计算资源,以支持更大规模的数据集和更复杂的机器学习任务。 3. 灵活性:通过Docker容器,我们可以将机器学习模型与其他应用程序或系统集成,实现更灵活和全面的功能。 总之,使用Docker容器来部署Flask机器学习模型是一种可行且有效的方式,可以加快模型的开发、部署和运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学术菜鸟小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值