使用Docker部署模型的一般方案

仅供参考!!!
1、使用flask在你的本地搭建好web服务,其中包含你的模型文件,预测代码及其他配置参数,如主函数为code里面的main.py,确保可以在本地正常运行,可使用postman测试;
在这里插入图片描述

2、注册新建好阿里云镜像,一般常用的环境如anaconda、pytorch、detectron2、mmdetection等可以备份好,可以经常使用到;
https://cr.console.aliyun.com/cn-shanghai/instances
3、新建批处理文件,为部署入口,参数一般包含镜像名称, 模型名称, 服务端口号,第几块显卡,如命名为deploy.sh(一般需要用到grep、awk)。

deploy.sh registry.cn-hangzhou.aliyuncs.com/xxx:base resnet_model 8888 0

修改代码后重新部署到本机一般流程如下:
(1)docker pull,阿里云镜像仓库拉到本地,如果没有拉取过第一次会比较慢,没有镜像仓库的先自己建立好push上去;
(2)docker stop,确保本地所有容器停止运行,不然删除时可能会出错;
(3)docker rm,删除掉本地旧的镜像版本,一个镜像可以有多个版本;
(4)docker tag,将阿里云镜像仓库的最新版本标签改为旧版本,等待上传最新的版本;
(5)docker build,执行Dockerfile,在同个目录,将修改的代码更新到本地docker中,设置启动容器后自动启动服务;
(6)docker push,推送到阿里云镜像仓库保存,为版本最新;
(7)docker run,本地开始运行最新版本docker;
如果不更新代码,建个新的批处理文件,包含docker pull、docker stop、docker run,借助运营工具即可实现在多个终端快速部署。
4、Dockerfile,相关指令如下,简单描述就是将本地哪个路径的代码放到哪个镜像的哪个路径,然后设置环境,找到main.py并执行。
https://www.runoob.com/docker/docker-dockerfile.html

FROM registry.cn-hangzhou.aliyuncs.com/xxx:base
USER root
RUN mkdir -p /root/code/
WORKDIR /root/code/
ADD . .
ENV PYTHONPATH /root/code
ENV LANG C.UTF-8
#CMD ["/bin/bash"]
CMD ["/bin/bash","-c","cd /root/project/code/ && source /etc/profile && CUDA_VISIBLE_DEVICES=0 /root/anaconda3/envs/python37/bin/python code/main.py"]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值