1. 程式人生 > 實用技巧 >Docker容器下安裝Kong閘道器(二)

Docker容器下安裝Kong閘道器(二)

1 安裝kong:

這是一個簡單的示例,顯示瞭如何將Kong容器連線到Cassandra或PostgreSQL容器。

建立一個Docker網路

您將需要建立一個自定義網路,以使容器能夠發現彼此並進行通訊。在此示例中kong-net為網路名稱,您可以使用任何名稱。

 $ docker network create kong-net

啟動你的資料庫

如果您想使用Cassandra容器:

 $ docker run -d --name kong-database \
               --network=kong-net \
               -p 9042:9042 \
               cassandra:3

如果您想使用PostgreSQL容器:

 $ docker run -d --name kong-database \
               --network=kong-net \
               -p 5432:5432 \
               -e "POSTGRES_USER=kong" \
               -e "POSTGRES_DB=kong" \
               -e "POSTGRES_PASSWORD=kong" \
               postgres:9.6

準備資料庫

使用臨時Kong容器執行遷移:

 $ docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PG_PASSWORD=kong" \
     -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
     kong:latest kong migrations bootstrap

在上面的示例中,同時配置了Cassandra和PostgreSQL,但是您應該KONG_DATABASE使用cassandra或更新環境變數 postgres

Kong <0.15的注意事項:Kong版本低於0.15(最大0.14)時,請使用up子命令代替bootstrap。還要注意,Kong <0.15時,永遠不要同時執行遷移。一次只能有一個Kong節點執行遷移。對於0.15、1.0及更高版本,此限制被取消。

執行遷移並準備好資料庫後,啟動將連線到資料庫容器的Kong容器,就像臨時遷移容器一樣:

由於後面會整合konga,按照之前的方式,會連不上,可以用下來的命令

安裝kong

docker run -d --name kong \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PG_PASSWORD=kong" \
     -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" \
     -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
     -p 80:8000 \
     -p 443:8443 \
     -p 8001:8001 \
     -p 8444:8444 \
     kong:latest
 $ curl -i http://localhost:8001/

上面為nginx中的配置,但是在kong中也可以做到靈活配置

2 安裝視覺化工具

安裝kong-dashboard

 docker run -d -p 8081:8080 --network=kong-net pgbi/kong-dashboard  start --kong-url http://172.18.0.3:8001 --basic-auth kong=123456

但是由於我拉的映象為最新的不支援,這裡就是簡單的記錄一下。

安裝konga

注意這樣安裝很多部落格和視訊都不能安裝成功,會報錯。一定要加:kong:kong

docker run --rm --network=kong-net pantsel/konga -c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga

有的部落格用的是DB_URI也會報錯,應該執行下面的命令

docker run -p 1337:1337 \
             --network=kong-net \
             -e "DB_ADAPTER=postgres" \
             -e "DB_HOST=kong-database" \
             -e "DB_USER=kong" \
             -e "DB_PASSWORD=kong" \
             -e "DB_DATABASE=konga" \
             -e "KONGA_HOOK_TIMEOUT=120000" \
             -e "NODE_ENV=production" \
             --name konga \
             pantsel/konga

安裝pgadmin

docker run -p 8090:80 \
   --name=pgadmin  \
     --network=kong-net \
     --link kong-database:kong-database  \
    -e '[email protected]' \
    -e 'PGADMIN_DEFAULT_PASSWORD=1qaz@WSX' \
    --restart always  \
    -d dpage/pgadmin4