使用 Docker Compose 部署
使用 Docker Compose,可在单台主机上运行完整的 API7 网关部署,用于评估、本地开发或小规模测试。你可以选择快速安装来获得开箱即用的完整环境;如需自定义控制面或单独部署网关,则可使用手动部署流程。
Docker Compose 仅适用于开发和测试。生产环境请参阅 在 Kubernetes 上部署 API7 企业版 和 部署高可用环境。
前置条件
- Docker(v20.10.x 或更高版本)
- Docker Compose(v2.x 或更高版本)
- curl
- 有效的 API7 企业版许可证。获取试用许可证。
快速安装
请根据目标主机的网络条件选择安装方式:
- 在线安装:从互联网下载部署文件和容器镜像。
- 离线安装:使用包含部署文件和所有必要容器镜像的离线部署包。
两种方式都会创建 api7-ee 目录,并启动控制台、DP Manager、PostgreSQL、Prometheus 和其他配套服务。首次安装且默认管理员凭证(admin / admin)仍有效时,安装脚本还会创建 default 网关组,并启动与该网关组连接的数据面网关。如果复用的 PostgreSQL 数据中已修改管理员密码,脚本会跳过自动创建网关;请登录控制台,创建或选择网关组并手动添加网关实例,然后再执行下方的网关验证。
在线安装
如果目标主机可以访问互联网并拉取容器镜像,请使用在线安装。
运行快速安装脚本:
curl -fsSL "https://run.api7.ai/api7/quickstart" -o api7-quickstart.sh &&
bash api7-quickstart.sh
该脚本会将当前版本的部署包下载到 ./api7-ee,拉取容器镜像,并启动完整的服务栈。
请在不包含 api7-ee 目录的工作目录中运行该脚本。如果该目录已经存在,脚本会先停止现有的快速安装环境,再重新安装。
离线安装
如果目标主机无法访问互联网或容器镜像仓库,请使用离线部署包。离线包 URL 会解析到当前版本。
在离线主机上确认其 CPU 架构:
uname -m
在 可以访问互联网的机器上,下载与离线主机输出结果匹配的部署包。下载机器和离线主机不需要使用相同的架构。
AMD64(x86_64)
curl -fSL "https://download.apiseven.com/api7-ee/api7-ee-offline-latest.tar.gz" \
-o api7-ee-offline.tar.gz
ARM64(arm64 或 aarch64)
curl -fSL "https://download.apiseven.com/api7-ee/api7-ee-offline-arm64-latest.tar.gz" \
-o api7-ee-offline.tar.gz
将 api7-ee-offline.tar.gz 传输到离线主机,然后解压并启动服务栈:
tar -xzf api7-ee-offline.tar.gz
cd api7-ee
bash run.sh
启动脚本会先加载离线包中的容器镜像,再启动所有服务。目标主机不需要访问互联网或外部容器镜像仓库。
验证部署
如果当前不在部署目录中,请进入该目录,然后检查容器状态:
cd api7-ee
docker compose ps
docker ps --filter "name=api7-ee-gateway-1"
网关作为独立容器运行,因此不会显示在 docker compose ps 的输出中。等待 Compose 服务和 api7-ee-gateway-1 全部运行后,再验证控制台和网关:
curl -k -I "https://127.0.0.1:7443/"
curl -i "http://127.0.0.1:9080/"
控制台返回响应,并且网关返回 404 Not Found,表示完整服务栈已经启动。创建路由前,网关返回 404 Not Found 属于正常现象。
在浏览器中打开 https://<host-ip>:7443/,使用默认凭证(admin / admin)登录。按照提示修改默认密码,然后上传并激活 API7 企业版许可证。
安装包还包含可选的开发者门户前端。激活包含 API7 Portal 特性的许可证后,请按照启动本地开发者门户中的说明运行该前端。
API7 的主要服务使用以下端口:
| 端口 | 组件 |
|---|---|
3001 | 通过 HTTP 访问的开发者门户前端(默认) |
4321 | 通过 HTTPS 访问的门户 API 后端 |
7443 | 通过 HTTPS 访问的控制台和 Admin API |
7900 | 通过 HTTP 访问的 DP Manager |
7943 | 通过 HTTPS 和 mTLS 访问的 DP Manager |
9080 | HTTP 网关流量 |
9443 | HTTPS 网关流量 |
从其他机器访问 API7 网关前,请确保主机防火墙已经开放所需端口。有关组件通信要求,请参阅 系统要求。
管理部署
在 api7-ee 目录中运行管理命令。持续查看 Compose 服务日志:
docker compose logs -f
按 Ctrl+C 停止持续查看日志。如需查看网关日志,请运行:
docker logs -f api7-ee-gateway-1
如需停止部署但保留容器,请运行:
docker stop api7-ee-gateway-1
docker compose stop
重新启动网关前,请先启动 Compose 服务:
docker compose start
until curl -fsS "http://127.0.0.1:7900/version" > /dev/null; do
sleep 2
done
docker start api7-ee-gateway-1
评估结束后,删除网关和 Compose 容器:
docker rm -f api7-ee-gateway-1
docker compose down
执行这些命令后,PostgreSQL 和 Prometheus 数据仍保存在 api7-ee 目录中。如果仍需保留部署数据,请勿删除该目录。
手动部署
如果需要自定义控制面配置或单独部署数据面,请使用以下流程。Docker Compose 会在单台主机上启动控制面组件,控制台则会生成包含所需 mTLS 证书的数据面网关 Docker 命令。
第 1 步:创建目录结构
创建工作目录,并为每个组件的配置创建子目录:
mkdir -p api7-ee/{dashboard_conf,dp_manager_conf}
cd api7-ee