本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Kong Gateway 是一个可扩展的开源 API 平台(也称为 API 网关或 API 中间件)。最初由 Kong Inc.(前身为 Mashape)开发,用于为其 API 市场中的 15,000 多个微服务提供安全、管理和扩展能力,该平台每月处理数十亿次请求。
目前,Kong Gateway 已在数百个组织的生产环境中使用,包括初创公司、大型企业和政府机构,如《纽约时报》、Expedia、Healthcare.gov、《卫报》、康泰纳仕、奥克兰大学、法拉利、乐天、思科、天巡、雅虎日本、Giphy 等。
官方文档可访问 docs.konghq.com。
Kong Gateway 支持无数据库运行,使用内存存储实体,通过 YAML/JSON 格式的声明式配置文件管理实体。
安全提示:在公共系统运行时,必须保护 Admin API。以下示例仅用于本地测试,建议仅在 localhost 暴露管理端口,详见 官方安全指南。
$ docker run -d --name kong \ -e "KONG_DATABASE=off" \ # 启用无数据库模式 -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ # 代理访问日志输出到标准输出 -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ # Admin API 访问日志输出到标准输出 -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ # 代理错误日志输出到标准错误 -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ # Admin API 错误日志输出到标准错误 -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ # Admin API 监听地址和端口 -p 8000:8000 \ # 代理 HTTP 端口 -p 8443:8443 \ # 代理 HTTPS 端口 -p 8001:8001 \ # Admin API HTTP 端口 -p 8444:8444 \ # Admin API HTTPS 端口 kong/kong-gateway
创建基础配置文件骨架:
$ docker exec -it kong kong config init /home/kong/kong.yml # 在容器内生成配置文件 $ docker exec -it kong cat /home/kong/kong.yml >> kong.yml # 复制到本地
通过 Admin API 加载本地配置文件(需安装 HTTPie):
$ http :8001/config config=@kong.yml # 将本地 kong.yml 加载到 Kong
注意:部分插件与无数据库模式不兼容(需数据库协调或动态实体创建),详见 无数据库与声明式配置文档。
为兼容所有插件(如 ACL、OAuth2),Kong Gateway 需使用 PostgreSQL 9.6+ 作为数据存储。
$ docker run -d --name kong-database \ -p 5432:5432 \ # PostgreSQL 端口 -e "POSTGRES_USER=kong" \ # 数据库用户 -e "POSTGRES_DB=kong" \ # 数据库名称 -e "POSTGRES_PASSWORD=kong" \ # 数据库密码 postgres:9.6
通过临时容器执行数据库迁移:
$ docker run --rm \ --link kong-database:kong-database \ # 链接到 PostgreSQL 容器 -e "KONG_DATABASE=postgres" \ # 指定数据库类型为 PostgreSQL -e "KONG_PG_HOST=kong-database" \ # PostgreSQL 主机(容器名) -e "KONG_PG_USER=kong" \ # PostgreSQL 用户 -e "KONG_PG_PASSWORD=kong" \ # PostgreSQL 密码 kong/kong-gateway kong migrations bootstrap # 执行数据库初始化
注意:Kong Gateway < 0.15 版本需使用
kong migrations up命令,且不支持并发迁移(仅允许单节点执行);0.15+ 版本无此限制。
$ docker run -d --name kong \ --link kong-database:kong-database \ # 链接到 PostgreSQL 容器 -e "KONG_DATABASE=postgres" \ # 启用数据库模式 -e "KONG_PG_HOST=kong-database" \ # PostgreSQL 主机 -e "KONG_PG_PASSWORD=kong" \ # PostgreSQL 密码 -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong/kong-gateway
启动后,Kong 监听以下端口:
通过环境变量覆盖 Kong 配置(前缀 KONG_ + 配置项名称):
$ docker run -d --name kong \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=1.1.1.1" \ # 自定义 PostgreSQL 主机(如外部集群) -e "KONG_LOG_LEVEL=info" \ # 日志级别(debug/info/warn/error/critical) -e "KONG_CUSTOM_PLUGINS=helloworld" \ # 加载自定义插件 -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong/kong-gateway
修改配置后,通过以下命令热重载(无 downtime):
$ docker exec -it kong kong reload # 在运行中的容器内执行重载
| 环境变量 | 说明 | 取值示例 |
|---|---|---|
KONG_DATABASE | 数据库模式 | off(无数据库)/postgres(PostgreSQL) |
KONG_PG_HOST | PostgreSQL 主机地址 | kong-database(容器名)/1.1.1.1(IP) |
KONG_PG_USER | PostgreSQL 用户名 | kong |
KONG_PG_PASSWORD | PostgreSQL 密码 | kong |
KONG_PG_DATABASE | PostgreSQL 数据库名 | kong |
KONG_ADMIN_LISTEN | Admin API 监听地址和端口 | 0.0.0.0:8001, 0.0.0.0:8444 ssl |
KONG_PROXY_ACCESS_LOG | 代理访问日志路径 | /dev/stdout(标准输出) |
KONG_LOG_LEVEL | 日志级别 | debug/info/warn/error |
KONG_CUSTOM_PLUGINS | 自定义插件列表(逗号分隔) | helloworld,myplugin |
kong/kong-gateway 镜像提供多种变体,适用于不同场景:
kong/kong-gateway:<version>默认镜像,适用于大多数场景。包含完整功能,可作为临时容器或基础镜像使用。支持“主版本.次版本”(如 3.7)和完整版本(如 3.7.0.0)标签。
kong/kong-gateway:<version>-<os><os-version>特定操作系统版本的镜像,如:
kong/kong-gateway:3.7-debian(Debian 基础)kong/kong-gateway:3.7-ubuntu(Ubuntu 基础)kong/kong-gateway:3.7-rhel(RHEL 基础)注意:
latest和latest-<os>标签不保证为最新稳定版,仅用于开发测试。
镜像包含软件的许可信息详见 Kong 软件许可。
与所有 Docker 镜像一样,本镜像可能包含基础系统及依赖软件的其他许可。用户需自行确保使用本镜像符合所有包含软件的许可要求。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429