搭建环境: docker 20.10.6 centos7
网上虽然有很多的好文章,但要不就是过时,要不就是不符合,不过很有借鉴意义。 以下1-4步骤是参照官网稍作修改后执行的 konga参照以下地址, 最后启动
konga
时报以下异常,稍作修改后成功docker: invalid reference format.
1、拉取kong、konga、postgres
传送门
kong目前使用Cassandra
、Postgres
来存储数据
$ docker pull kong
$ docker pull pantsel/konga
$ docker pull postgres:9.6
2、启动数据库
1、创建一个自定义网络,允许多个容器之间相互发现和通讯。
$ docker network create kong-net
2、启动数据库
$ docker run -d --name kong-database \
--restart=always \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
3、准备kong的数据库
$ docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_PASSWORD=kong" \
kong:latest kong migrations bootstrap
4、kong启动网关
$ docker run -d --name kong-oss --network=kong-net \
--restart=always \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=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" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
-p 8002:8002 \
-p 8445:8445 \
-p 8003:8003 \
-p 8004:8004 \
kong:latest
5、安装kong管理UI(konga)
kong官网提供了管理UI,但是开源版本并没有看到,有许多的开源UI,我这里选择的konga
1、初始化konga数据库
172.19.3.40记得替换为自己的
ip
地址 不知道ip地址的输入ip addr
查看,找到eth0
$ docker run --network=kong-net \
--rm pantsel/konga -c prepare -a postgres \
-u postgresql://kong:kong@172.19.3.40:5432/konga
2、启动konga
$ docker run -d -p 1337:1337 \
--network=kong-net \
--name konga \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgresql://kong:kong@172.19.3.40:5432/konga" \
-e "NODE_ENV=production" \
pantsel/konga
6、查看安装的konga
UI界面
浏览器打开http://172.19.3.40:1337/
注册、登录
登录进来后界面
1、添加连接
点击上方红色框中图标,激活服务
激活后会显示出api gateway
2、添加服务Services
3、添加路由Route
由于我这里是直接通过IP
地址进行访问接口地址,所以Hosts
、Paths
就不填了