Skip to content

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:[email protected]: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,连接成功如下

alt text