Docker 是一個(gè)應(yīng)用程序程序包,可以調(diào)試、測試和運(yùn)行應(yīng)用程序而無需為在單個(gè)環(huán)境中運(yùn)行的每個(gè)應(yīng)用程序管理依賴關(guān)系和庫。
Kong 是一個(gè)基于 Nginx 的開源 API 管理和微服務(wù)管理系統(tǒng)。它可用于構(gòu)建高可用性、可伸縮性和安全性的 API 網(wǎng)關(guān)。
下面是如何在 Docker 中安裝 Kong。
$ docker pull kong
此命令將從 Docker Hub 下載最新版本的 Kong 鏡像。
$ docker run -d --name kong-database \
-p 5432:5432 \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6
此命令將啟動(dòng)一個(gè)名為 kong-database 的 PostgreSQL 數(shù)據(jù)庫容器,并在容器端口 5432 上暴露 PostgreSQL 數(shù)據(jù)庫。
$ docker run --rm \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
kong kong migrations bootstrap
該命令將使用 kong-database 容器設(shè)置 Kong 數(shù)據(jù)庫,并在容器中初始化表和其他數(shù)據(jù)結(jié)構(gòu)。
$ docker run -d --name kong \
--link kong-database:kong-database \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-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" \
-e "KONG_PROXY_LISTEN=0.0.0.0:8000" \
-p 8000:8000 \
-p 8001:8001 \
kong
最后這個(gè)命令將啟動(dòng) Kong 容器并將其配置為在容器標(biāo)準(zhǔn)輸出中記錄數(shù)據(jù),以便在容器日志中查看。我們已經(jīng)將管理員和代理監(jiān)聽端口配置為 8001 和 8000。
現(xiàn)在 Kong 已經(jīng)成功安裝在 Docker 中,并且可以在代理服務(wù)器上注冊服務(wù)。