docker 搭建 kong 过程

1、docker 的安装

# 更新系统包到最新。
sudo yum -y update
 
# 执行Docker安装脚本
sudo curl -sSL https://get.docker.com/ | sh
sudo yum install -y docker-selinux
 
# 启动Docker
sudo systemctl start docker.service
  
# 创建 docker 组
useradd -g docker docker
 
# 创建docker用户组
sudo usermod -aG docker $USER
 
# 验证docker已经正常安装
docker run hello-world

2、postgres docker 安装

docker run -d --name kong-database \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-v /home/work/data/postgres:/var/lib/postgresql/data \   #建立数据卷 linux 目录:/home/work/data/postgres, docker 容器对应的路径 /var/lib/postgresql/data
postgres:9.4

3、kong 初始化 postgres 表

docker run -it --rm \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations up

4、启动 kong

docker run -d --name kong \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-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" \
-v /home/work/var/logs/kong:/var/log \  # 将 kong 的日志映射到本地环境
-p 8000:8000 \                  # 前者为 linux 机器本身端口,后者为 docker 端口,linux:docker
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:latest

5、对应的 docker 容器信息

[work@esmaster01 data]$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
kong                latest              604ef970973d        3 days ago          313MB
postgres            9.4                 8b895ad85dc5        5 days ago          263MB
hello-world         latest              05a3bd381fc2        5 days ago          1.84kB

6、不采用 -- link 通信

docker run -d --name kong\
 -e "KONG_DATABASE=postgres" \
 -e "KONG_PG_HOST=192.168.200.11" \
 -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" \
 -p 8888:8000 \
 -p 8445:8443 \
 -p 8889:8001 \
 -p 8446:8444 \
 kong:latest

这样能够起到将数据库进行分离,进行冷热备,达到 kong 集群公用一个数据库的效果。

你可能感兴趣的:(docker 搭建 kong 过程)