前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
全程操作按官方文檔來就可以了。
?
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/