安装部署
1:先获取镜像
docker pull kong
docker pull postgres:9.6
2: 创建网络
docker network create kong-net
3:先安装postgres
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
4:初始化kong 数据库
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong kong migrations bootstrap
5: 安装kong
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-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:latest
kong端口的各自作用
- 8000: 用于监听来自客户端的http请求,并将请求转发到上游服务器
- 8001: 用于监听kong提供的AdminApi接口
- 8443: 8000的https
- 8444: 801的https
6: 安装konga (一个kong的可视化工具)
a:先下载镜像
docker pull pantsel/konga
b:为konga创建数据库
docker run -d --name konga-database \
--network=kong-net \
-p 5433:5432 \
-e "POSTGRES_USER=konga" \
-e "POSTGRES_DB=konga" \
-e "POSTGRES_PASSWORD=konga" \
postgres:9.6
c:初始化konga数据库
docker run --rm --network=kong-net pantsel/konga:latest -a postgres -c prepare -u postgres://konga:konga@konga-database:5432/konga
d:启动konga数据库
docker run -p 1337:1337 \
--network kong-net \
-e "TOKEN_SECRET=kong" \
-e "DB_ADAPTER=postgres" \
-e "DB_HOST=konga-database" \
-e "DB_PORT=5432" \
-e "DB_USER=konga" \
-e "DB_PASSWORD=konga" \
-e "DB_DATABASE=konga" \
-e "DB_PG_SCHEMA=public"\
-e "NODE_ENV=production" \
--name konga \
pantsel/konga
konga安装完成后就可以通过url访问,我们这的访问地址是:http://172.16.1.36:1337/
初始需要注册账号密码;我这里注册账号密码是 kong/kong123456
遇到的问题
1: Error: don’t know how to auth: 10
原因是因为postgres的版本太高出现不兼容现象,我刚开始是docker pull postgres 获取的是最新版本 降至9.6版本就可以了