1 docker 操作基础
# 查看正在运行的容器/查看所有容器
docker ps/docker ps -a
# 在宿主机和容器之间复制文件
docker cp
# 保存镜像为压缩文件
docker save
# 加载压缩文件为镜像
docker load
# 把容器制作成镜像
docker commit
# 以root用户进行容器kong
docker exec -it -u root kong /bin/bash
# 登录仓库
docker login
# pull 镜像
docker pull
# push镜像
docker push
# 删除镜像
docker rmi
# 删除容器
docker rm
# 启动处于停止状态的容器
docker start
# 停止容器
docker stop
# 重新启动容器
docker restart
# 跟踪日志
docker logs -f –tail 100 containid
2 更新插件
(1)通过升级镜像
docker pull/docker cp/docker start
(2)通过打补丁方式
docker cp/docker stop/docker start
docker cp/docker exec -it/kong reload/kong restart
3 Service、route、upstream的关系,以及插件的作用
参考:https://www.icode9.com/content-4-596432.html
3.1 Service、route、upstream、plugin的具体配置
(1)Route
(2)Service
(3)Upstream
(4)Target
(5)Plugin
3.2 konga高级应用
(1)一个konga管理多个kong,但是同一时刻只能显示一个kong的配置
(2)配置快照同时支持导入导出
3.3 镜像
- docker pull postgres:9.6
- docker pull kong:1.3
- docker pull pantsel/konga:latest
- docker pull dpage/pgadmin4:latest
3.4 搭建kong环境
(1)创建网络
docker network create kong-net
(2)创建kong-database
docker run -d --name kong-database \
--network=kong-net \
-p 5431:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
--restart always \
postgres:9.6
(3)初始化kong-database
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap
(4)安装kong
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 9000:8000 \
-p 9443:8443 \
-p 9001:8001 \
-p 9444:8444 \
--restart always \
kong:latest
测试:curl -v http://localhost:8001/
(5)konga 数据库 konga init
docker run --rm --network=kong-net pantsel/konga:latest -c prepare -a postgres -u postgresql://kong:kong@kong-database:5431/konga
(6)konga run
docker run -d --name konga \
--network=kong-net \
-p 9337:1337 \
-e "DB_ADAPTER=postgres" \
-e "DB_HOST=kong-database" \
-e "DB_PORT=5432" \
-e "DB_USER=konga" \
-e "DB_PASSWORD=konga" \
-e "DB_DATABASE=konga" \
-e "KONGA_HOOK_TIMEOUT=120000" \
-e "NODE_ENV=production" \
-e "DB_URI=postgresql://kong:kong@kong-database:5432/konga" \
pantsel/konga
访问地址:http://10.29.216.180:7248/
(7)pgadmin run
docker run -d -p 9090:80 \
--name=pgadmin \
--network=kong-net \
--link kong-database:kong-database \
-e "PGADMIN_DEFAULT_EMAIL=admin@segimail.com" \
-e "PGADMIN_DEFAULT_PASSWORD=123456" \
--restart always \
-d dpage/pgadmin4
访问地址:http://10.29.216.180:7249/
(8)kong的nginx配置修改
/usr/local/share/lua/5.1/kong/templates/nginx_kong.lua