Docker下网关服务kong安装

一、创建一个Docker网络(实现容器间的网络通信)

docker network create kong-net

–network=kong-net:将postgres、kong、dashboard的网络都指向新建的kong-nnet网络解决多个容器间的通信问题

二、安装数据库

数据库版本可自定

docker run -d --name kong-database \
           --network=kong-net \
           -p 5432:5432 \
           -e "POSTGRES_USER=postgres" \
           -e "POSTGRES_PASSWORD=postgres" \
           -e "POSTGRES_DB=postgres" \
           postgres:9.6

数据库安装后,可进入postgres容器,创建kong用户及数据库kong,操作步骤如下:

#进入到postgres容器中
docker exec -it container_id /bin/bash
#切换用户
su postgres
#进入命令
psql;
#创建用户kong及密码
create user kong with password 'kong';
#创建数据库kong
create database kong owner kong;
#查看创建后的数据库(可省)
\l

三、初始化数据库

docker run --rm \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_PASSWORD=kong" \
 kong:0.13.1 kong migrations up

docker run --rm \
 --network=kong-net \
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=kong-database" \
 -e "KONG_PG_PORT=5432" \
 -e "KONG_PG_USER=kong" \
 -e "KONG_PG_PASSWORD=kong" \
 -e "KONG_PG_DATABASE=kong" \
 kong:0.13.1 kong migrations up

这里有两点需要注意:

  1. kong:latest 表示安装最新版本,但是由于前端管理工具Dashboard目前只支持到0.14.x,如果管理kong版本过高,界面有点bug,所以我实际安装时这里选择kong:0.13.1
  2. 如果kong版本低于0.15时,kong migrations bootstrap应改为kong migrations up,>=0.15时使用 bootstrap

四、安装kong镜像并启动kong

数据库安装好了,并按指定kong版本进行对应的初始化后,现在可以通过docker拖取镜像并启动kong了

docker run -d --name kong \
--network=kong-net \
-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, 0.0.0.0:8444 ssl" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
 kong:0.13.1

如果数据库是本地化部署,可以直接写IP及相关信息,注意这样写后面启动dashbord时不需要–network kong-net了,且url里直接写IP:

docker run -d --name kong \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=172.20.10.4" \
-e "KONG_PG_PORT=5432" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-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:0.13.1

默认情况下,KONG监听的端口为:

8000: 此端口是KONG用来监听来自客户端传入的HTTP请求,并将此请求转发到上有服务器;
8443: 此端口是KONG用来监听来自客户端传入的HTTP请求的。它跟8000端口的功能类似,但是它只是用来监听HTTP请求的,没有转发功能。可以通过修改配置文件来禁止它;
8001: Admin API,通过此端口,管理者可以对KONG的监听服务进行配置;
8444: 通过此端口,管理者可以对HTTP请求进行监控.

五、安装kong-dashboard

docker run --rm --network kong-net -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001

docker run --rm --network kong-net -p 8080:8080 \
--name kong-dashboard \
pgbi/kong-dashboard start --kong-url http://kong:8001

六、展示

通过地址 http://localhost:8080
在这里插入图片描述

参考文档:
https://konghq.com/install/
https://blog.csdn.net/qism007/article/details/89521454
https://blog.csdn.net/imilli/article/details/87860829
https://blog.csdn.net/imilli/article/details/87860829

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值