Docker容器下安裝Kong閘道器(二)
阿新 • • 發佈:2020-09-15
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