Kong的Docker部署

本文详细介绍如何使用Docker部署Kong API网关,包括安装启用Docker、创建专有网络、配置数据库容器(Cassandra或PostgreSQL)、设置数据库、启动Kong服务及确认运行状态等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Docker

安装启用Docker

数据库

创建数据库容器

Cassandra

PostgreSQL 

设置数据库

Cassandra

PostgreSQL

启动Kong服务

安装、运行状态确认

镜像信息

容器信息

Kong服务运行状态

参考文章



Docker

安装启用Docker

#安装 Docker
yum install docker
#启用 Docker 服务
systemctl enable docker
#开始 Docker 服务
systemctl start docker

创建 Kong 专有网络

主要是用于容器间的互相发现和通讯

docker network create kong-net

数据库

 

Kong的运行需要数据库的支持,目前支持 PostgreSQL 和 Cassandra,版本要求如下

 

数据库版本要求
PostgreSQL >=9.5
Cassandra>=3

 

 

 

 

创建数据库容器

可选择 Cassandra 或者 PostgreSQL

Cassandra

docker run -d --name kong-database \
--network=kong-net \
-p 9042:9042 \
cassandra:3

PostgreSQL 

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

 

设置数据库

  • 此处【KONG_DATABASE】参数根据数据库的不同分别为【cassandra】和【postgres
  • 如果Kong版本低于0.15,则使用【bootstrap】子命令替换为【up
  • 如果Kong版本低于0.15,子命令【migrations】不应和【bootstrapup】同时使用

Cassandra

docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=cassandra" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap

 

PostgreSQL

docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap

 

启动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_CASSANDRA_CONTACT_POINTS=kong-database" \
-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:latest

 

部分情况下,docker logs kong 会报 permission denied

在 docker run 命令追加 --privileged 参数即可,只是原因还不是很理解(kong2.0无此问题,0.15版本有)

 

安装、运行状态确认

镜像信息

[root@kong ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/cassandra   3                   31c37745a656        4 days ago          378 MB
docker.io/kong        latest              abec1dd8af91        2 weeks ago         144 MB
[root@kong ~]#

 

容器信息

未成功启动的容器需要增加【-a】参数才可以看到

[root@kong ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
fb527794e381        kong:latest         "/docker-entrypoin..."   26 minutes ago      Up 26 minutes       0.0.0.0:8000-8001->8000-8001/tcp, 0.0.0.0:8443-8444->8443-8444/tcp   kong
0294df228b0a        cassandra:3         "docker-entrypoint..."   27 minutes ago      Up 27 minutes       7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp            kong-database
[root@kong ~]#

 

Kong服务运行状态

http://localhost:8001/ 或 http://localhost:8001/status 均可

[root@kong ~]# curl -i http://localhost:8001/status
{ "database": { "reachable": true } }
[root@kong ~]#

 

参考文章

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值