在 银河麒麟 V10 SP2(Kylin V10 SP2) 系统上部署YApi

银河麒麟 V10 SP2(Kylin V10 SP2) 系统上,若你的环境 只能访问内部 YUM 源(如企业内网镜像站、华为云内网源等) ,而无法连接公网(如 mirrors.huaweicloud.com 或互联网),请按以下步骤安全、合规地安装 Docker + Docker Compose ,并部署 YApi


✅ 前提条件

  • 你的内网 YUM 源已同步 银河麒麟 V10 SP2 的官方仓库
  • 内网源地址已配置到 /etc/yum.repos.d/(例如 kylin-intranet.repo
  • 你有 sudo 权限

🔍 验证内网源是否可用:

复制代码
yum repolist
yum search docker

📦 一、通过内部 YUM 源安装 Docker

1. 搜索 Docker 包(确认是否存在)

复制代码
yum search docker

在麒麟 V10 SP2 中,Docker 通常以以下形式存在:

  • docker-ce(社区版,较新)
  • docker-engine(旧版)
  • docker(麒麟自研封装版)

⚠️ 不要安装 podman(虽然名字类似,但不是 Docker)

2. 安装 Docker(推荐方式)

方式 A:如果内网源包含 docker-ce
复制代码
# 安装 Docker 社区版
sudo yum install -y docker-ce docker-ce-cli containerd.io
方式 B:如果只有 docker(麒麟封装版)
复制代码
# 安装麒麟提供的 Docker
sudo yum install -y docker

3. 启动并启用 Docker

复制代码
sudo systemctl start docker
sudo systemctl enable docker

4. 验证安装

复制代码
docker --version
# 示例输出:Docker version 20.10.9, build ...

💡 如果 docker 命令未找到,尝试 docker-engine 或检查包名:rpm -qa | grep -i docker


🔧 二、安装 Docker Compose(内部源方式)

Docker Compose 通常不在 YUM 源中,但部分企业内网会提供 RPM 包。

方法 1:检查内网源是否有 docker-compose

复制代码
yum search docker-compose
# 或
yum list available | grep -i compose

如果有,直接安装:

复制代码
sudo yum install -y docker-compose

方法 2:若无,则需 手动部署二进制文件(无需联网)

📌 假设你已从其他机器下载好 docker-compose 二进制文件(或由运维提供)

  1. docker-compose 文件上传到服务器(如 /tmp/docker-compose

  2. 安装:

    复制代码
    sudo cp /tmp/docker-compose /usr/local/bin/
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. 验证:

    复制代码
    docker-compose --version

✅ 二进制文件获取建议:

  • GitHub Releases 下载对应版本(linux-x86_64
  • 或使用华为云内网软件仓库中的预编译包

🐳 三、部署 YApi(使用 Docker Compose)

由于 YApi 本身不依赖 YUM 源(运行在容器中),只需确保能拉取镜像即可。

情况 1:内网有 Docker 镜像仓库(如 Harbor)

  1. 运维已将 jayfong/yapi:latestmongo:4.4 同步到内网 Harbor

  2. 修改 docker-compose.yml 使用内网地址:

    services:
    yapi-web:
    image: harbor.intranet.local/ops/yapi:latest # ← 内网镜像
    # ... 其他配置不变

    mongo:
    image: harbor.intranet.local/base/mongo:4.4 # ← 内网镜像
    # ...

  3. 登录 Harbor(如需要):

    复制代码
    docker login harbor.intranet.local -u user -p password

情况 2:无内网镜像仓库,但允许临时拉取一次公网镜像

(适用于初始化部署,后续可离线运行)

  1. 临时开通外网权限(或由跳板机代理)

  2. 执行:

    复制代码
    cd /opt/yapi
    sudo docker-compose pull   # 拉取镜像
    sudo docker-compose up -d  # 启动
  3. 成功后关闭外网,服务仍可运行(镜像已缓存)

情况 3:完全离线(需提前导入镜像)

  1. 在有网机器上保存镜像:

    复制代码
    docker save jayfong/yapi:latest mongo:4.4 -o yapi-images.tar
  2. 上传 yapi-images.tar 到麒麟服务器

  3. 导入镜像:

    复制代码
    docker load -i yapi-images.tar
  4. 正常启动 docker-compose up -d


📁 四、完整部署步骤(内网环境)

复制代码
# 1. 创建目录
mkdir -p /opt/yapi/{config,data}

# 2. 准备 config.json(内容见前文)
cat > /opt/yapi/config/config.json <<EOF
{
  "port": "3000",
  "adminAccount": "admin@intranet.local",
  "adminPassword": "SecurePass123!",
  "db": {
    "servername": "mongo",
    "DATABASE": "yapi",
    "port": 27017
  },
  "closeRegister": true
}
EOF

# 3. 编写 docker-compose.yml(使用内网镜像或默认)
cat > /opt/yapi/docker-compose.yml <<EOF
version: '3'
services:
  yapi-web:
    image: jayfong/yapi:latest
    ports: ["3000:3000"]
    volumes: ["./config:/yapi/config:ro"]
    depends_on: [mongo]
    restart: unless-stopped

  mongo:
    image: mongo:4.4
    volumes: ["./data:/data/db"]
    restart: unless-stopped
EOF

# 4. 启动(假设镜像已存在或可拉取)
cd /opt/yapi
sudo docker-compose up -d

🔒 五、安全与合规建议(内网环境)

项目 建议
镜像来源 使用企业 Harbor 仓库,禁止直接拉取公网镜像
漏洞扫描 yapimongo 镜像进行 CVE 扫描
网络隔离 YApi 仅对内网开放,禁止暴露到互联网
日志审计 /opt/yapi/logs 接入 SIEM 系统
定期更新 由运维统一更新镜像,避免自行升级

❓ 常见问题

Q:yum install docker 报错 "No package docker available"?

  • 原因:内网源未同步 Docker 相关仓库
  • 解决
    1. 联系运维将 docker-ce RPM 包放入内网源

    2. 或手动下载 RPM 安装:

      复制代码
      sudo yum install -y ./docker-ce-*.rpm

Q:Docker 启动失败,提示 selinux 错误?

  • 解决 (临时):

    复制代码
    sudo setenforce 0
    sudo systemctl restart docker
  • 长期:配置 SELinux 策略或禁用(根据安全策略)


✅ 总结

纯内网麒麟 V10 SP2 环境 中安装 YApi 的关键:

  1. Docker 通过内网 YUM 源或 RPM 安装
  2. Docker Compose 通过 RPM 或二进制部署
  3. YApi 镜像通过内网 Harbor 或离线导入
  4. 配置文件与数据持久化到本地

只要基础组件(Docker)能装上,YApi 作为容器应用,天然适合内网离线部署。

相关推荐
techzhi13 天前
Apifox CLI + GitLab CI:接口自动化测试实施记录
java·ci/cd·kubernetes·gitlab·yapi·运维开发·fastapi
魏波.16 天前
YApi 有哪些成熟的 IDEA 和 VS Code 插件?
yapi
zqy022720 天前
Apipos推荐
yapi
码界奇点1 个月前
基于Golang的微服务API网关系统设计与实现
开发语言·微服务·golang·毕业设计·yapi·源代码管理
码界奇点1 个月前
基于Spring MVC与AngularJS的API接口管理系统设计与实现
spring·毕业设计·yapi·mvc·angular.js·源代码管理
西西偷西瓜2 个月前
Trae IDE 读取并解析接口文档:trae-swagger-mcp 插件开发分享
前端·ide·自动化·yapi·ai编程
Proud lion2 个月前
Apipost开发管理平台功能对比与应用场景分析
yapi·postman·apipost·apifox·api开发
诗酒当趁年华5 个月前
Yapi接口文档导出测试用例至Excel中
yapi·测试用例·excel
、我是男生。6 个月前
火线、零线、地线
yapi