云耀云服务器L实例评测|使用Docker可视化Portainer部署Yolov5项目进行AI识别

举报
爱吃香蕉的阿豪 发表于 2023/11/04 12:42:32 2023/11/04
【摘要】 使用华为云服务器Docker可视化Portainer,部署Yolov5集成的webAPI项目,附docker-compose与dockerfile

 目录

初始化配置使用Xshell连接

项目准备

docker-compose

Dockerfile

.dockerignore

在服务器中启动Docker项目



初始化配置使用Xshell连接

因为我比较喜欢用xshell来操作服务器,如果你是使用华为在线的CloudShell或其他方式,可以跳过第一步的连接操作。

在选择服务器的时候我选择了云耀云服务器L实例的Docker可视化Portainer,里面已经部署好我们需要的docker环境了,不需要再自己手动额外安装

首先,服务器购买成功后,第一步先找到我们的控制台,点击接下来要使用的服务器,点击服务器昵称,进入到基本信息详情页,然后在右上角更多的下拉框中,点击重置密码。

在弹出来的窗口中输入我们要设置的密码,记住这个秘密,待会要用到。

输入完成之后,选择验证方式,填写验证码,点击确认,就完成了修改密码操作。

然后点击弹性网卡,复制下面的弹性公网IP地址

或者回到我们的控制台中,鼠标停留在ip地址中也是会弹出提示框来查看IP地址的。

打开xshell,将上面的IP地址填到主机号中,点击确认,然后会弹出一个身份验证,填写我们刚刚重置密码中输入的密码,此时就已经连接成功了。

项目准备

因为本章主题是将YOLO的Ai项目使用docker部署在服务器运行,所以前面的项目如何搭建我们就不细说了,只说明docker配置部分。

先来简单的回顾一下前面的项目。

在第一期博客中,我们安装了必要的系统依赖,拉取yolov5源代码,并且训练出了一个.pt权重文件。

博客链接:https://blog.csdn.net/weixin_65243968/article/details/127189585

第二期博客中,我们使用训练好的权重文件,在本地搭建了一个识别的web与api接口。

博客链接:yolov5模型部署到web端,识别返回json格式文件_yolov5部署到web_爱吃香蕉的阿豪的博客-CSDN博客

在以上步骤都完成之后,我们把项目放到一个app文件夹中,然后创建docker-compose与dockerfile和一个.dockerignore

然后下面我们来对这三个文件编码。

docker-compose

在这个docker-compose中

Version是指版本号

services 定义了要创建的服务列表

core-api 是服务的名称,可以根据需要自定义。

build 指定了构建上下文和 Dockerfile 的位置。

command 指定了启动容器时要执行的命令,将主机地址设置为 0.0.0.0,使得容器可以接收来自任何网络接口的请求。

Restart 是指容器在退出时自动重启

Volumes:定义容器与主机之间的数据卷映射关系

Ports:将容器内的端口 8005 映射到主机的端口 8005,以便可以通过主机的端口访问容器内的服务。

- TZ=Asia/Shanghai:设置时区为上海(Asia/Shanghai)

cpus: '4':指定容器可以使用的最大 CPU 核心数为 4。

memory: 20000M:指定容器可以使用的最大内存为 2GB。

platform: "linux/amd64":指定了平台映像的类型为 Linux/AMD64。这意味着生成的容器镜像将基于 x86_64 架构的 Linux 操作系统。

Dockerfile

FROM python:3.8.6-buster  AS build
WORKDIR /apps
COPY ./apps ./
RUN apt-get update && apt-get install -y \
    libgl1-mesa-glx
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir 

在file文件中,首先指定基础镜像为python:3.8.6-buster

将工作目录设置为apps,然后通过命令COPY将我们的项目copy进去

在容器中执行apt-get命令来更新软件包列表并安装libgl1-mesa-glx软件包。

最后在容器中执行pip命令来安装requirements.txt文件中指定的依赖包,并通过清华大学的PyPI镜像源进行下载和安装,同时禁用缓存。

.dockerignore


__pycache__/*

*/__pycache__/*

dockerignore文件用于告诉Docker哪些文件或目录不需要被复制到Docker镜像中。

__pycache__/*表示__pycache__目录下的所有文件,以及*/__pycache__/*表示所有子目录中的__pycache__文件

这些都是存放Python解释器生成的字节码文件,因此我们不需要复制到镜像当中。

在服务器中启动Docker项目


因为我购买的服务器是云耀云的Docker可视化Portainer,因此内部已经有docker的环境,不需要再自己进行部署了,非常的方便。

打开Xftp,将我们的项目copy进去。

在xshell进入我们项目的文件夹,执行docker-compse up,此时已经在下载镜像了,如需要让他在后台运行,则使用docker-compse up -d

构建完成之后可以使用dockers ps -a 查看我们的镜像

然后回到华为云的控制台,找到安全组,点击配置规则

添加我们项目配置的端口,这样才能通过ip访问到

测试一下,使用公网ip访问我们的项目,可以成功访问了

再测试一下我们的api接口,发送了一张图片,可以成功返回识别结果!

在项目运行了一天之后,查看了一下服务器的监控,哪怕是部署ai大模型这种高性能应用,云耀云服务器L实例的表现也是相当出色的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。