前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
全程操作按官方文档来就可以了。
1.将 Kong 连接到 Cassandra 或 PostgreSQL 容器
Kong支持 2 种数据库:Cassandra 或 PostgreSQL ,至于使用哪个完全 UP 2 U 。
执行以下命令启动Cassandra容器:
$ docker run -d --name kong-database \-p 9042:9042 \cassandra:3
通过执行以下命令来启动PostgreSQL容器:
docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \postgres:9.5
我选择的是PostgreSQL,执行上述命令,如果当前环境没有对应镜像会自动从 Docker 仓库下载,直到这个命令执行完就可以查到这个镜像了,并且 kong-database 容器也有了。
( Kong 要求 postgres 9.4 或更高版本 ,并且要对数据库作大版本号升级的话对新手来说挺复杂,所以个人建议新安装尽量不要装版本号过低的数据库。)
查看 postgres 数据库的镜像和容器:
2.准备数据库
用一个 Kong 容器运行数据库迁移:
docker run --rm \--link kong-database:kong-database \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \kong kong migrations up
运行如下:
这时 Kong 的数镜像已有了:
3.对 Kong 进行自定义配置
您可以用环境变量覆盖 Kong配置文件的 任何属性。只需将KONG_
前缀添加到任何Kong配置属性中,例如:
$ docker run -d --name kong \-e "KONG_DATABASE=postgres"-e "KONG_PG_HOST=kong-database" \-e "KONG_LOG_LEVEL=info" \-e "KONG_CUSTOM_PLUGINS=helloworld" \-e "KONG_PG_HOST=1.1.1.1" \-e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \-e "KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \kong
至此 Kong 已安装成功 :
我的 kong 装好启动后不久总是会自动退出,后来想到: KONG 是基于 nginx ,所以装好 nginx 。
docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx
运行后如下:
4. 安装 KONG 的图形化管理界面 kong-dashboard
Start Kong Dashboard 命令如下:
docker run --rm -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001
我在执行时给容器起了个比较好辨识的名字 : kong-dashboard
另外我的 kong 是安装在 IP 为 xx.xx.xx.8 的物理机上,所以把 IP 地址也对应的设置了。
执行命令最终为:
docker run --rm -p 8080:8080 --name kong-dashboard pgbi/kong-dashboard start --kong-url http://xx.xx.xx.8:8001
依旧会自动下载所需镜像,运行完成。
可以通过以下命令查看服务是否正常启动:
curl http://服务器内网IP:8080/status 这个大概是请求的是kong应用的界面。
curl http://服务器内网IP:8001/status 这个大概是请求的是kong应用的接口。
最后成功访问到 UI 界面 :
备注:
1)如果遇到报错:
could not retrieve server_version: timeout
解决方法参见:Kong 启动报错解决
2)服务启动成功却在浏览器上始终访问不到界面,最后才想起是阿里云服务器上未开放端口8080。
开放端口 8080 就可以了。开放方法参见:阿里云服务器开放8080端口
参考Docker 官方文档:
https://docs.docker.com/samples/library/kong/#kongversion
https://hub.docker.com/r/pgbi/kong-dashboard/
https://docs.docker.com/samples/library/nginx/