Docker 安装 Yapi

Docker 安装系列        Docker已安装。

1、场景Yapi使用的MongoDB用户信息

1.1 创建自定义 Docker 网络

首先,创建一个自定义的 Docker 网络,以便 MongoDB 和 YApi 容器可以相互通信

[root@flexusx-328569 data]# docker network create yapi-network
48a8836621729c10bf96d0bf7c1735daad7449ae0c648a632b47fe3053f2a768
[root@flexusx-328569 data]#

1.2 部署 MongoDB 容器

        接下来,启动 MongoDB 容器,并将其加入到刚才创建的 yapi-network 中。同时,设置环境变量以初始化管理员用户

docker pull mongo:5.0 

[root@flexusx-328569 data]# docker run -d --restart=always --network yapi-network -p 27017:27017 --name mongo-yapi -v /data/mongdb-yapi/data:/data/db -e MONGO_INITDB_ROOT_USERNAME=hvadmin -e MONGO_INITDB_ROOT_PASSWORD=Hv123456  -d mongo:5.0
f438729acf674b299adb6beeb64f5864d246ad40f443f5f3eb77a71066014949
[root@flexusx-328569 data]# docker exec -it f438 mongo
MongoDB shell version v5.0.30
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("cfcb003a-13b5-4ca7-a30f-184bb65cfed1") }
MongoDB server version: 5.0.30
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttps://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com
> use admin;
switched to db admin
> db.auth("hvadmin","Hv123456");
1
> show users;
{"_id" : "admin.hvadmin","userId" : UUID("9e703b9f-e7b6-426e-98fa-8e118e4c4029"),"user" : "hvadmin","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]
}
>

1.3 创建用户 

db.createUser({user: 'yapi',pwd: 'yapi123',roles: [{ role: "dbAdmin", db: "yapi" },{ role: "readWrite", db: "yapi" }]});

> use yapi;
switched to db yapi
> db.createUser({user: 'yapi',pwd: 'yapi123',roles: [{ role: "dbAdmin", db: "yapi" },{ role: "readWrite", db: "yapi" }]});
Successfully added user: {"user" : "yapi","roles" : [{"role" : "dbAdmin","db" : "yapi"},{"role" : "readWrite","db" : "yapi"}]
}
> show users;
{"_id" : "yapi.yapi","userId" : UUID("a652d417-8f92-46f6-a55a-0e0092939dac"),"user" : "yapi","db" : "yapi","roles" : [{"role" : "dbAdmin","db" : "yapi"},{"role" : "readWrite","db" : "yapi"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]
}
> db.createCollection("tseng1");
{ "ok" : 1 }
> 
> db.getCollectionNames();
[ "tseng1" ]
> exit
bye
[root@flexusx-328569 data]#

 测试连接

2、下载

[root@flexusx-328569 data]# docker pull yapipro/yapi:latest
latest: Pulling from yapipro/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 yapipro/yapi:latest
[root@flexusx-328569 data]#

3、查看下载

[root@flexusx-328569 data]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
xuxueli/xxl-job-admin   2.4.2               776d09cf1493        2 weeks ago         236MB
mongo                   5.0                 ed1e02a705a3        5 weeks ago         723MB
eclipse-mosquitto       latest              fdc6f47a31a7        6 weeks ago         14.9MB
nacos/nacos-server      v2.4.3              fc86d4833afb        7 weeks ago         286MB
nginx                   1.26.2              f87a52ac001c        3 months ago        188MB
yapipro/yapi            latest              f42f7299bbef        3 years ago         248MB
redis                   6.0.6               1319b1eaa0b7        4 years ago         104MB
mysql                   8.0.18              ed1ffcb5eff3        4 years ago         456MB
[root@flexusx-328569 data]#

4、查看 latest 对应的版本

[root@flexusx-328569 data]# docker image inspect yapipro/yapi:latest | grep -i version"DockerVersion": "","NODE_VERSION=12.22.3","YARN_VERSION=1.22.5",
[root@flexusx-328569 data]#

5、配置文件

[root@flexusx-328569 data]# mkdir -p /data/yapi
[root@flexusx-328569 data]# vim /data/yapi/config.json
[root@flexusx-328569 data]# cat /data/yapi/config.json {"port": "3000","adminAccount": "admin@yapi.com","timeout":12000,"db": {"servername": "mongo-yapi","DATABASE": "yapi","port": 27017,"user": "yapi","pass": "yapi123","authSource": ""},"mail": {"enable": false},"closeRegister": true
}
[root@flexusx-328569 data]#

配置解析

1. port (端口)
  • 描述:指定YApi应用监听的HTTP端口。
  • "3000",表示YApi将监听在3000端口上。
2. adminAccount (管理员账户)
  • 描述:指定初始管理员用户的邮箱地址。在首次安装或初始化时会创建此用户。
  • "yapiadmin@yapi.com",表示管理员的邮箱为yapiadmin@yapi.com
3. timeout (超时时间)
  • 描述:设置请求处理的最大等待时间,单位为毫秒。
  • 120000,表示请求处理的最大等待时间为120秒(2分钟)。
4. db (数据库配置)
  • 描述:包含连接到MongoDB数据库所需的所有信息。
  • 字段解释
    • "servername":MongoDB服务器的主机名或IP地址。在这个例子中,它被设置为"mongodb",这通常意味着MongoDB服务在同一Docker网络中的另一个容器,并且该容器的名称为mongodb
    • "DATABASE":数据库名称,这里是"yapi"
    • "port":MongoDB服务的端口号,默认是27017
    • "user":用于认证的用户名,这里是"yapi"
    • "pass":用于认证的密码,这里是"yapi123"
    • "authSource":认证源数据库,默认为空字符串,表示使用默认的认证机制。如果需要指定特定的认证数据库,可以在这里填入相应的数据库名称,例如"admin"
5. mail (邮件配置)
  • 描述:配置是否启用邮件发送功能,以及相关参数。
  • 字段解释
    • "enable":布尔值,表示是否启用邮件功能。当前设置为false,意味着邮件功能未启用。

6、启动容器

[root@flexusx-328569 yapi]# docker run -d --name yapi --restart always -p 3000:3000 -v /data/yapi/config.json:/yapi/config.json -e MONGO_SERVER=mongo-yapi -e MONGO_PORT=27017 -e MONGO_DB=yapi -e MONGO_USER=yapi -e MONGO_PASS=yapi123 yapipro/yapi:latest server/app.js
666a50fe667566dcafb0db066e68262863f8bd503466b70b52c3823ba25392d2
[root@flexusx-328569 yapi]#

7、查看容器状态

[root@flexusx-328569 yapi]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                      NAMES
666a50fe6675        yapipro/yapi:latest   "node server/app.js"     2 seconds ago       Up 2 seconds        0.0.0.0:3000->3000/tcp                     yapi
0e7735b7df0d        mongo:5.0             "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes        0.0.0.0:27017->27017/tcp                   mongo-yapi
6ecff9da64ef        nginx:1.26.2          "/docker-entrypoint.…"   2 weeks ago         Up 2 weeks          0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx
5372d6f6c213        mysql:8.0.18          "docker-entrypoint.s…"   2 weeks ago         Up 3 days           33060/tcp, 0.0.0.0:3308->3306/tcp          mysql3308.8.0.18
72e4a9a96a7f        redis:6.0.6           "docker-entrypoint.s…"   2 weeks ago         Up 2 weeks          0.0.0.0:16379->6379/tcp                    redis16379
[root@flexusx-328569 yapi]# docker logs -f yapi
log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服务已启动,请打开下面链接访问: 
http://127.0.0.1:3000/

8、测试、访问:http://ip地址:3000

        账号“admin@yapi.com”(config.json 中配置的 adminAccount),默认密码:yapi.pro

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/485059.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于vue框架的的献血管理系统knmx7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,献血车,预约献血,献血记录,献血结果 开题报告内容 基于Vue框架的献血管理系统开题报告 一、课题名称 基于Vue框架的献血管理系统 二、研究背景与意义 随着医疗技术的不断进步和各类突发事件的频发,临床用血需求日益…

青龙面板添加任务执行自己的脚本文件(非订阅) 保姆级图文

目录 效果预览脚本存放的位置创建任务cron规则字段含义:常见的特殊字符: 可能你的脚本需要安装依赖总结 欢迎关注 『青龙面板』 专栏,持续更新中 欢迎关注 『青龙面板』 专栏,持续更新中 效果预览 你的python脚本 print(123)运行…

nginx中tcp_nodelay、types_hash_max_size都是什么配置?

nginx中tcp_nodelay、types_hash_max_size都是什么配置? 在 Nginx 中,tcp_nodelay 和 types_hash_max_size 是两个不同的配置项,它们分别与网络性能优化和 MIME 类型的管理相关。 1. tcp_nodelay 功能: 控制是否启用 TCP_NODELAY…

【联邦学习】理论学习

文章目录 前言一、联邦学习要解决的问题二、什么是联邦学习2.1 发展历程2.2 分布式学习2.3 联邦学习和分布式学习的区别 3. 联邦学习工作原理4. 种类4.1 横向联邦学习4.2 纵向联邦学习4.3 迁移联邦学习 5. 技术挑战统计挑战:数据非独立同分布(non-lld)系统挑战&…

Shell 传递参数

Shell 传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为 $n,n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数。 例如可以使用 $1、$2 等来引用传递给脚本的参数&…

【组件封装】uniapp vue3 封装一个完整的Tabs(标签页)组件教程,功能由简到杂实现讲解。

文章目录 前言一、简单版Tabs代码实现: 二、下划线带动画的TabsAPI回顾:代码实现: 三、内容区域滑动切换切换动画代码实现:(2)禁用手势滑动切换(3)内容区域换为插槽 四、标签栏可滚动…

35页PDF | 元数据与数据血缘落地实施(限免下载)

一、前言 这份报告详细介绍了元数据与数据血缘的概念、重要性以及在企业数据中台中的应用。报告阐述了数据中台的核心价值在于整合和管理体系内的数据,以提升数据资产化能力并支持业务决策。报告还涵盖了元数据的分类(技术元数据和业务元数据&#xff0…

etcd资源超额

集群内apiserver一直重启,重启kubelet服务后查看日志发现一下报错: Error from server: etcdserver: mvcc: database space exceeded 报错原因: etcd服务未设置自动压缩参数(auto-compact) etcd 默认不会自动 compa…

【Linux】线程概念 | 线程控制

文章目录 👉知识补充👈👉Linux线程概念👈什么是线程Makefile线程 VS 进程线程的优点线程的缺点线程异常线程用途 👉线程控制👈线程终止pthread_exit 函数pthread_cancel 函数线程 ID 的深入理解在多线程的场…

word如何快速创建目录?

文章目录 1,先自己写出目录的各级标题。2、选中目标标题,然后给它们编号3、给标题按照个人需求开始分级4、插入域构建目录。4.1、利用快捷键插入域构建目录4.2、手动插入域构建目录 听懂掌声!学会了吗? 前提声明:我在此…

第九篇:k8s 通过helm发布应用

什么是helm? Helm 是 Kubernetes 的包管理器。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 在红帽系的Linux中我们使用yum来管理RPM包,类似的,在K8s中我们可以使用helm来管理资源对象(Deployment、Service、Ingress…

微信小程序配置less并使用

1.在VScode中下载Less插件 2.在微信小程序中依次点击如下按钮 选择 从已解压的扩展文件夹安装… 3.选中刚在vscode中下载安装的插件文件 如果没有修改过插件的安装目录,一般是在c盘下C:\用户\用户名.vscode\extensions\mrcrowl.easy-less-2.0.2 我的路径是&#xf…

RabbitMQ 客户端工程环境配置

RabbitMQ 客户端工程环境配置 下面分别以 C# 控制台应用程序 、 Unity 工程为例 一 C# 控制台应用程序 (1)新建项目 (2) RabbitMQ 需要通过 NuGet 安装 打开项目解决方案 -> 依赖项(右键) -> 管理 NuGet 程序包 -> 搜索 RabbitMQ.Client -&…

chrome使用问题记录

1. http自动跳转https问题 step1. 地址栏输入: chrome://net-internals/#hsts step2. 找到底部Delete domain security policies一栏,输入想处理的域名,点击delete。 注意:输入域名时去掉前缀http step3. 搞定了,再…

Applied Intelligence投稿

一、关于手稿格式: 1、该期刊是一个二区的,模板使用Springer nature格式, 期刊投稿要求,详细期刊投稿指南,大部分按Soringernature模板即可,图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…

数据结构初阶--算法复杂度(1)

以下我用C语言实现基础的数据结构。 目录 初识数据结构与算法 数据结构 算法 算法效率 练习:轮转数组(不完全版) 时间复杂度 大O的渐进表示法 例一: 例二: 例三: 例四: 例五: 总结&#xff…

C# 中LINQ的详细介绍

文章目录 前言一、 LINQ 的基本概念二、查询语法与方法语法三、LINQ 的投影操作四、LINQ 的排序操作五、LINQ 的过滤操作六、LINQ 的分组操作七、LINQ 的连接操作八、LINQ 的聚合操作九、LINQ 的延迟执行十、LINQ 的错误处理十一、LINQ 的合并操作十二、LINQ 的自定义对象查询十…

mongo开启慢日志及常用命令行操作、数据备份

mongo开启慢日志及常用命令行操作、数据备份 1.常用命令行操作2.mongo备份3.通过命令临时开启慢日志记录4.通过修改配置开启慢日志记录 1.常用命令行操作 连接命令行 格式:mongo -u用户名 -p密码 --host 主机地址 --port 端口号 库名; 如:连…

lyapunov指数的绘制

有如下方程: %% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)绘制其对应的lyapunov指数。 MATLAB实现方式: clc; clearvars; close all;%% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)%% 代码 N 1000; a (0:0.001:1.4); b 0.3; na length(a…

数字时代的文化宝库:存储技术与精神生活

文章目录 1. 文学经典的数字传承2. 音乐的无限可能3. 影视艺术的数字化存储4. 结语 数字时代的文化宝库:存储技术与精神生活 在数字化的浪潮中,存储技术如同一座桥梁,连接着过去与未来,承载着人类文明的瑰宝。随着存储容量的不断增…