目錄
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】不應和【bootstrap、up】同時使用
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 ~]#
參考文章
- https://docs.konghq.com/install/docker/?_ga=2.170477666.354743097.1584603943-1852435805.1584603943(官方文檔)
- https://www.jianshu.com/p/749fe5509fef
- https://blog.csdn.net/liumiaocn/article/details/80442222
- https://www.cnblogs.com/yddmax/p/6184100.html(Permission Denied問題)