云原生之使用Docker部署YApi接口管理服务平台

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 云原生之使用Docker部署YApi接口管理服务平台

一、YApi介绍

1.YApi简介

YApi旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API。

2.YApi功能

  • 权限管理
YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求。
  • 可视化接口管理
基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率。
  • Mock Server
易用的 Mock Server,再也不用担心 mock 数据的生成了。
  • 自动化测试
完善的接口自动化测试,保证数据的正确性。
  • 数据导入
支持导入 swagger, postman, har 数据格式,方便迁移旧项目。
  • 插件机制
强大的插件机制,满足各类业务需求。

二、检查docker环境

1.检查docker版本

[root@docker ~]# docker -v
Docker version 20.10.18, build b40c2f6

2.检查docker状态

[root@docker ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-10-21 13:52:55 CST; 9h ago
     Docs: https://docs.docker.com
 Main PID: 9813 (dockerd)
    Tasks: 36
   Memory: 535.9M
   CGroup: /system.slice/docker.service
           ├─ 9813 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─13425 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.20.0.2 -container-port 3...
           ├─13453 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 3000 -container-ip 172.20.0.2 -container-port 3000
           ├─48329 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8011 -container-ip 172.19.0.2 -container-port 8...
           └─48334 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8011 -container-ip 172.19.0.2 -container-port 80

Oct 21 13:52:39 docker dockerd[9813]: time="2022-10-21T13:52:39.865044855+08:00" level=info msg="ClientConn switching ba...le=grpc
Oct 21 13:52:41 docker dockerd[9813]: time="2022-10-21T13:52:41.471511161+08:00" level=info msg="[graphdriver] using pri...erlay2"
Oct 21 13:52:45 docker dockerd[9813]: time="2022-10-21T13:52:45.234684184+08:00" level=info msg="Loading containers: start."
Oct 21 13:52:47 docker dockerd[9813]: time="2022-10-21T13:52:47.414394139+08:00" level=info msg="Default bridge (docker0...ddress"
Oct 21 13:52:54 docker dockerd[9813]: time="2022-10-21T13:52:54.698122310+08:00" level=info msg="Loading containers: done."
Oct 21 13:52:54 docker dockerd[9813]: time="2022-10-21T13:52:54.973240663+08:00" level=info msg="Docker daemon" commit=e...0.10.18
Oct 21 13:52:54 docker dockerd[9813]: time="2022-10-21T13:52:54.973328839+08:00" level=info msg="Daemon has completed in...zation"
Oct 21 13:52:55 docker systemd[1]: Started Docker Application Container Engine.
Oct 21 13:52:55 docker dockerd[9813]: time="2022-10-21T13:52:55.682450266+08:00" level=info msg="API listen on /var/run/...r.sock"
Oct 21 15:26:05 docker dockerd[9813]: time="2022-10-21T15:26:05.202485181+08:00" level=info msg="ignoring event" contain...Delete"
Hint: Some lines were ellipsized, use -l to show in full.
[root@docker ~]# 

三、安装MongoDB数据库

1.创建MongoDB数据卷

[root@docker ~]# docker volume create yapi_db
yapi_db

2.创建MongoDB容器

[root@docker ~]# docker run -d --name mongo-yapi -v yapi_db:/data/db mongo:4.4.9
Unable to find image 'mongo:4.4.9' locally
4.4.9: Pulling from library/mongo
f3ef4ff62e0d: Pull complete 
b1a49f973a13: Pull complete 
a94d4dd6d900: Pull complete 
f6e410f3a61f: Pull complete 
84513ed7bcb6: Pull complete 
c81f961faa63: Pull complete 
a4146772698c: Pull complete 
7d67abd2e683: Pull complete 
0930c7be04e9: Pull complete 
c583d7bc3a62: Pull complete 
Digest: sha256:f5a4e5d7dea0f7d3abe14c8f24ed0f62d91d26b4eb56c14a817b8f04dd335aec
Status: Downloaded newer image for mongo:4.4.9
c21a142b5ac83816d55a5d417354c607cadce478a428385ed8530bbb21fd5029


3.查看MongoDB容器状态

[root@docker ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED              STATUS              PORTS                                       NAMES
c21a142b5ac8   mongo:4.4.9              "docker-entrypoint.s…"   About a minute ago   Up About a minute   27017/tcp                                   mongo-yapi

四、安装Yapi

1.下载Yapi镜像

[root@docker ~]# docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi
Using default tag: latest
latest: Pulling from anoy/yapi
e7c96db7181b: Pull complete 
72484f09da35: Pull complete 
86bee4bed5f2: Pull complete 
f9e983f0fe2c: Pull complete 
60b427281623: Pull complete 
148cae4613db: Pull complete 
Digest: sha256:a34daaf6cf64c55fb849d92452009ff312636c05365cf02965f6871b8fbff0c5
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/anoy/yapi:latest
registry.cn-hangzhou.aliyuncs.com/anoy/yapi:latest

2.Yapi初始化


[root@docker ~]# docker run -it --rm --link mongo-yapi:mongo --entrypoint npm --workdir /api/vendors registry.cn-hangzhou.aliyuncs.com/anoy/yapi run install-server

> yapi-vendor@1.8.5 install-server /api/vendors
>  node server/install.js

log: mongodb load success...
初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"

3.启动Yapi服务

[root@docker data]# docker run -d --name yapi --link mongo-yapi:mongo --workdir /api/vendors -p 3000:3000 registry.cn-hangzhou.aliyuncs.com/anoy/yapi server/app.js
32a37816967e940854b4f2adcbc16f386d617bea6e78d74cdf45007a4896035f

4.查看容器状态

[root@docker data]# docker ps -a
CONTAINER ID   IMAGE                                         COMMAND                  CREATED          STATUS          PORTS                                       NAMES
32a37816967e   registry.cn-hangzhou.aliyuncs.com/anoy/yapi   "node server/app.js"     55 seconds ago   Up 54 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   yapi
c21a142b5ac8   mongo:4.4.9                                   "docker-entrypoint.s…"   12 minutes ago   Up 12 minutes   27017/tcp                                   mongo-yapi

5.登录Yapi

admin@admin.com
ymfe.org 

image.png

五、使用docker-compose部署Yapi容器

1.下载Yapi镜像

[root@docker yapi]# docker pull  jayfong/yapi:latest
latest: Pulling from jayfong/yapi
cbdbe7a5bc2a: Pull complete 
8f3938f7d3bd: Pull complete 
6e3c12f5dc10: Pull complete 
ce0cb7a9eeee: Pull complete 
33778c009b63: Pull complete 
0a69a898b7c7: Pull complete 
Digest: sha256:163e5d6219107c9eae0e0cd5d2cdbb78d7ef82d992850b1d7c920d8ee0371f9b
Status: Downloaded newer image for jayfong/yapi:latest
docker.io/jayfong/yapi:latest

2.编辑docker-compose.yaml

[root@docker yapi]# cat docker-compose.yaml 
version: '3'

services:
  yapi-web:
    image: jayfong/yapi:latest
    container_name: yapi-web
    ports:
      - 40001:3000
    environment:
      - YAPI_ADMIN_ACCOUNT=admin@docker.yapi
      - YAPI_ADMIN_PASSWORD=adm1n
      - YAPI_CLOSE_REGISTER=true
      - YAPI_DB_SERVERNAME=yapi-mongo
      - YAPI_DB_PORT=27017
      - YAPI_DB_DATABASE=yapi
      - YAPI_MAIL_ENABLE=false
      - YAPI_LDAP_LOGIN_ENABLE=false
      - YAPI_PLUGINS=[]
    depends_on:
      - yapi-mongo
    links:
      - yapi-mongo
    restart: unless-stopped
  yapi-mongo:
    image: mongo:4.4.9
    container_name: yapi-mongo
    volumes:
      - ./data/db:/data/db
    expose:
      - 27017
    restart: unless-stopped

3.安装Yapi容器

[root@docker yapi]# docker-compose up -d
Creating network "yapi_default" with the default driver
Creating yapi-mongo ... done
Creating yapi-web   ... done

4.查看YApi容器状态

[root@docker yapi]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                         NAMES
1a12933e54d4   jayfong/yapi:latest   "docker-entrypoint.s…"   3 seconds ago   Up 2 seconds   0.0.0.0:40001->3000/tcp, :::40001->3000/tcp   yapi-web
d229e2652dbd   mongo:4.4.9           "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   27017/tcp

5.进入YApi登录页

image.png

6.进入YApi首页

admin@docker.yapi
adm1n

image.png

image.png

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
214 3
|
6天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
54 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
17天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
56 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
7天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
7天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
17 1
|
1月前
|
Web App开发 前端开发 测试技术
【Docker项目实战】使用docker部署tabler后台模版
【10月更文挑战第10天】使用docker部署tabler后台模版
35 1
【Docker项目实战】使用docker部署tabler后台模版
|
1月前
|
JSON JavaScript 测试技术
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
【10月更文挑战第9天】使用Docker部署PPTist在线演示文稿应用
36 1
【Docker项目实战】使用Docker部署PPTist在线演示文稿应用
|
1月前
|
消息中间件 编解码 Docker
【Docker项目实战】Docker部署RabbitMQ消息中间件
【10月更文挑战第8天】Docker部署RabbitMQ消息中间件
83 1
【Docker项目实战】Docker部署RabbitMQ消息中间件
|
1月前
|
存储 前端开发 测试技术
【Docker项目实战】使用Docker部署Calcium网页计算器
【10月更文挑战第7天】使用Docker部署Calcium网页计算器
30 1
【Docker项目实战】使用Docker部署Calcium网页计算器
|
1月前
|
存储 测试技术 Linux
【Docker项目实战】使用Docker部署Radicale日历和联系人应用
【10月更文挑战第4天】使用Docker部署Radicale日历和联系人应用
129 2
【Docker项目实战】使用Docker部署Radicale日历和联系人应用