docker 搭建 kong 过程
2018-01-22 本文已影响0人
xuxiangwork
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 集群公用一个数据库的效果。