1. 环境说明
系统版本 : CentOS8
Docker :
Docker CE 19.03.14
使用腾讯镜像源安装服务器IP: 192.168.0.21
Docker镜像版本: postgres:9.6 / kong:2.2.1-alpine /
pantsel/konga:next
2. 防火墙配置
Docker容器默认使用 bridge
, 配置 firewalld 信任 docker 的 ip 地址
- 查看子网
$ docker network inspect bridge
其中 Subnet
就是对应的容器子网,例如这里查看到的是 "Subnet": "172.17.0.0/16"
- 配置
$ firewall-cmd --zone=trusted --add-source=172.17.0.0/16 --permanent
$ firewall-cmd --reload
也可以直接添加interface,例如
$ firewall-cmd --zone=trusted --add-interface=docker0 --permanent
$ firewall-cmd --reload
3. 安装 postgres
使用 Docker 安装 PostgreSQL
, 默认用户是 kong
, 数据库 kong
, 密码是 123456
。
先使用 mkdir -p /opt/docker-data/postgres
创建目录,之后执行命令
$ docker run -d --name kong-database \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=123456" \
-v /opt/docker-data/postgres:/var/lib/postgresql/data \
postgres:9.6
4. 安装Kong
- 初始化Kong数据库(创建表)
$ docker run --rm \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=192.168.0.21" \
-e "KONG_PG_PORT=5432" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=123456" \
-e "KONG_PG_DATABASE=kong" \
kong:2.2.1-alpine kong migrations bootstrap
- 安装Kong
$ docker run -d --name kong \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=192.168.0.21" \
-e "KONG_PG_PORT=5432" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=123456" \
-e "KONG_PG_DATABASE=kong" \
-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:2.2.1-alpine
4. 安装Konga
安装第三方管理端UI界面
- 初始化数据库
创建并初始化konga数据库,如果版本更新后有表的改动,执行该方法也会更新表
$ docker run --rm pantsel/konga:next -c prepare -a postgres -u postgresql://kong:123456@192.168.0.21:5432/konga
- 安装Konga
$ docker run -d -p 1337:1337 \
-e "DB_ADAPTER=postgres" \
-e "DB_HOST=192.168.0.21" \
-e "DB_PORT=5432" \
-e "DB_USER=kong" \
-e "DB_PASSWORD=123456" \
-e "DB_DATABASE=konga" \
-e "NODE_ENV=production" \
--name konga \
pantsel/konga:next
- 开放1337端口
这里是为了方便测试,开放1337公开访问,实际生成环境部署不建议开放公开访问,可以限制管理机器的IP访问
$ firewall-cmd --add-port=1337/tcp --permanent
$ firewall-cmd --reload
- 测试
访问网址 http://192.168.0.21:1337
,登录并添加管理端Kong Admin URL http://192.168.0.21:8001
,连接成功如下