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

目录

初始化配置使用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

version: '1'
services:
  core-api:
    build:
      context: .
      dockerfile: ./Dockerfile
    command: python server.py --host 0.0.0.0
    restart: always
    volumes:
      - "./apps:/apps"
    ports:
      - 8005:8005
    environment:
      - TZ=Asia/Guangzhou
    deploy: 
      resources:
        limits:
          cpus: '4'
          memory: 20000M
    platform: "linux/amd64"

在这个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实例的表现也是相当出色的。

猜你喜欢

转载自blog.csdn.net/weixin_65243968/article/details/132701334
今日推荐