在 银河麒麟 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二进制文件(或由运维提供)
-
将
docker-compose文件上传到服务器(如/tmp/docker-compose) -
安装:
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 -
验证:
docker-compose --version
✅ 二进制文件获取建议:
- 从 GitHub Releases 下载对应版本(
linux-x86_64)- 或使用华为云内网软件仓库中的预编译包
🐳 三、部署 YApi(使用 Docker Compose)
由于 YApi 本身不依赖 YUM 源(运行在容器中),只需确保能拉取镜像即可。
情况 1:内网有 Docker 镜像仓库(如 Harbor)
-
运维已将
jayfong/yapi:latest和mongo:4.4同步到内网 Harbor -
修改
docker-compose.yml使用内网地址:services:
yapi-web:
image: harbor.intranet.local/ops/yapi:latest # ← 内网镜像
# ... 其他配置不变mongo:
image: harbor.intranet.local/base/mongo:4.4 # ← 内网镜像
# ... -
登录 Harbor(如需要):
docker login harbor.intranet.local -u user -p password
情况 2:无内网镜像仓库,但允许临时拉取一次公网镜像
(适用于初始化部署,后续可离线运行)
-
临时开通外网权限(或由跳板机代理)
-
执行:
cd /opt/yapi sudo docker-compose pull # 拉取镜像 sudo docker-compose up -d # 启动 -
成功后关闭外网,服务仍可运行(镜像已缓存)
情况 3:完全离线(需提前导入镜像)
-
在有网机器上保存镜像:
docker save jayfong/yapi:latest mongo:4.4 -o yapi-images.tar -
上传
yapi-images.tar到麒麟服务器 -
导入镜像:
docker load -i yapi-images.tar -
正常启动
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 仓库,禁止直接拉取公网镜像 |
| 漏洞扫描 | 对 yapi 和 mongo 镜像进行 CVE 扫描 |
| 网络隔离 | YApi 仅对内网开放,禁止暴露到互联网 |
| 日志审计 | 将 /opt/yapi/logs 接入 SIEM 系统 |
| 定期更新 | 由运维统一更新镜像,避免自行升级 |
❓ 常见问题
Q:yum install docker 报错 "No package docker available"?
- 原因:内网源未同步 Docker 相关仓库
- 解决 :
-
联系运维将
docker-ceRPM 包放入内网源 -
或手动下载 RPM 安装:
sudo yum install -y ./docker-ce-*.rpm
-
Q:Docker 启动失败,提示 selinux 错误?
-
解决 (临时):
sudo setenforce 0 sudo systemctl restart docker -
长期:配置 SELinux 策略或禁用(根据安全策略)
✅ 总结
在 纯内网麒麟 V10 SP2 环境 中安装 YApi 的关键:
- Docker 通过内网 YUM 源或 RPM 安装
- Docker Compose 通过 RPM 或二进制部署
- YApi 镜像通过内网 Harbor 或离线导入
- 配置文件与数据持久化到本地
只要基础组件(Docker)能装上,YApi 作为容器应用,天然适合内网离线部署。