创建自定义 Docker 网络以允许容器发现和 彼此通信
docker network create kong-net
您可以随意命名此网络。我们使用 as 本指南中的一个示例。kong-net
启动 PostgreSQL 容器:
docker run -d --name kong-database --network=kong-net -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kongpass" postgres:13
POSTGRES_USER和 :将这些值设置为 。这是 Kong Gateway 期望的默认值。POSTGRES_DBkong
POSTGRES_PASSWORD:将数据库密码设置为任意字符串。
在此示例中,名为 can 与网络上的任何容器通信。kong-databasekong-net
准备 Kong 数据库:
docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_PASSWORD=kongpass" kong:3.9.0 kong migrations bootstrap
启动 Kong Gateway
运行以下命令以使用 Kong Gateway 启动容器。
docker run -d --name kong-gateway --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kongpass" -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" -e "KONG_ADMIN_GUI_URL=http://localhost:8002" -p 8000:8000 -p 8443:8443 -p 127.0.0.1:8001:8001 -p 127.0.0.1:8002:8002 -p 127.0.0.1:8444:8444 kong:3.9.0
–name和 :要创建的容器的名称, 以及它所通信的 Docker 网络。–network
KONG_DATABASE: 指定 Kong 正在使用的数据库类型。
KONG_PG_HOST: 通过网络进行通信的 Postgres Docker 容器的名称。kong-net
KONG_PG_USER 和 KONG_PG_PASSWORD: Postgres 用户名和密码。Kong Gateway 需要登录信息 将配置数据存储在数据库中。KONG_PG_HOST
所有_LOG参数:设置要输出到的日志的文件路径,或使用 将消息和错误打印到 和 的示例。stdoutstderr
KONG_ADMIN_LISTEN: Kong Admin API 侦听请求的端口。
KONG_ADMIN_GUI_URL:用于访问 Kong Manager 的 URL,前面有协议 (例如,)。http://
KONG_LICENSE_DATA:(仅限 Enterprise)如果您有许可证文件并已保存该文件 作为环境变量,此参数从您的环境中提取许可证
验证您的安装:
使用 Admin API 访问终端节点:/services
curl -i -X GET –url http://localhost:8001/services
您应该会收到一个状态代码。200
通过访问 Kong Manager 来验证它是否正在运行 使用 中指定的 URL :KONG_ADMIN_GUI_URL
http://localhost:8002
清理容器
如果您已完成 Kong Gateway 的测试并且不再需要容器,那么您 可以使用以下命令清理它们:
docker kill kong-gateway
docker kill kong-database
docker container rm kong-gateway
docker container rm kong-database
docker network rm kong-net