搭建环境: docker 20.10.6 centos7

网上虽然有很多的好文章,但要不就是过时,要不就是不符合,不过很有借鉴意义。 以下1-4步骤是参照官网稍作修改后执行的 konga参照以下地址, 最后启动konga时报以下异常,稍作修改后成功 docker: invalid reference format.

1、拉取kong、konga、postgres

传送门
kong目前使用CassandraPostgres来存储数据

  1. $ docker pull kong
  2. $ docker pull pantsel/konga
  3. $ docker pull postgres:9.6

2、启动数据库

1、创建一个自定义网络,允许多个容器之间相互发现和通讯。

  1. $ docker network create kong-net

2、启动数据库

  1. $ docker run -d --name kong-database \
  2. --restart=always \
  3. --network=kong-net \
  4. -p 5432:5432 \
  5. -e "POSTGRES_USER=kong" \
  6. -e "POSTGRES_DB=kong" \
  7. -e "POSTGRES_PASSWORD=kong" \
  8. postgres:9.6

3、准备kong的数据库

  1. $ docker run --rm --network=kong-net \
  2. -e "KONG_DATABASE=postgres" \
  3. -e "KONG_PG_HOST=kong-database" \
  4. -e "KONG_PG_PASSWORD=kong" \
  5. -e "KONG_PASSWORD=kong" \
  6. kong:latest kong migrations bootstrap

4、kong启动网关

  1. $ docker run -d --name kong-oss --network=kong-net \
  2. --restart=always \
  3. -e "KONG_DATABASE=postgres" \
  4. -e "KONG_PG_HOST=kong-database" \
  5. -e "KONG_PG_PASSWORD=kong" \
  6. -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
  7. -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
  8. -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
  9. -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
  10. -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \
  11. -p 8000:8000 \
  12. -p 8443:8443 \
  13. -p 8001:8001 \
  14. -p 8444:8444 \
  15. -p 8002:8002 \
  16. -p 8445:8445 \
  17. -p 8003:8003 \
  18. -p 8004:8004 \
  19. kong:latest

5、安装kong管理UI(konga)

kong官网提供了管理UI,但是开源版本并没有看到,有许多的开源UI,我这里选择的konga

1、初始化konga数据库

172.19.3.40记得替换为自己的ip地址 不知道ip地址的输入ip addr查看,找到eth0

  1. $ docker run --network=kong-net \
  2. --rm pantsel/konga -c prepare -a postgres \
  3. -u postgresql://kong:kong@172.19.3.40:5432/konga

2、启动konga

  1. $ docker run -d -p 1337:1337 \
  2. --network=kong-net \
  3. --name konga \
  4. -e "DB_ADAPTER=postgres" \
  5. -e "DB_URI=postgresql://kong:kong@172.19.3.40:5432/konga" \
  6. -e "NODE_ENV=production" \
  7. pantsel/konga

6、查看安装的kongaUI界面

浏览器打开http://172.19.3.40:1337/
注册、登录
image.png
登录进来后界面

1、添加连接

image.png
image.png
点击上方红色框中图标,激活服务
激活后会显示出api gateway
image.png

2、添加服务Services

添加一个当前已经运行的api地址
image.png

3、添加路由Route

由于我这里是直接通过IP地址进行访问接口地址,所以HostsPaths就不填了
image.png

4、POSTMAN进行接口测试

image.png