Windows?Docker部署Kong網(wǎng)關(guān)的實(shí)現(xiàn)步驟
一、Kong 網(wǎng)關(guān)版本
Kong Gateway 有開源免費(fèi)版和企業(yè)版,兩個不同的版本。當(dāng)前企業(yè)版有些功能是需要收費(fèi)的,今天這里部署的是開源免費(fèi)版本 3.6.x 系列。兩個版本之間的區(qū)別,請見 官方文檔。

二、部署 Kong 網(wǎng)關(guān)
部署 Kong 網(wǎng)關(guān),需要先部署依賴的 db、初始化 db 數(shù)據(jù),然后再進(jìn)行 kong 網(wǎng)關(guān)部署。
2.1 創(chuàng)建 kong-net 網(wǎng)絡(luò)
打開 Docker Desktop 切換到 Linux 容器,然后在 PowerShell 執(zhí)行下面命令,則會創(chuàng)建 kong-net 網(wǎng)絡(luò),如果已存在 kong-net 網(wǎng)絡(luò),則不需要創(chuàng)建。
docker network create kong-net
2.2 部署 PostgreSQL
接著,PowerShell 執(zhí)行下面命令,會部署 Kong Gateway 依賴的 PostgreSQL 數(shù)據(jù)庫。這里安裝的是 13 版本,DB 和 Kong Gateway 的般般之間會有依賴關(guān)系,不建議部署其他版本。
docker run -d --name kong-postgresql-13 --network=kong-net -p 5432:5432 -v C:\ProgramDatas\Docker\Containers\kong-database-13:/var/lib/postgresql/data -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kongpass" postgres:13
-參數(shù) -p 5432:5432 將 PostgreSQL 默認(rèn)端口 5432 映射到物理機(jī)的 5432 端口。
-參數(shù) --network=kong-net 指定 PostgreSQL 容器的網(wǎng)絡(luò)。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\kong-database-13:/var/lib/postgresql/data 將 PostgreSQL 容器內(nèi)的 /var/lib/postgresql/data 目錄映射到物理機(jī)的 C:\ProgramDatas\Docker\Containers\kong-database-13 進(jìn)行數(shù)據(jù)持久化。
-參數(shù) -e “POSTGRES_USER=kong” 指定 PostgreSQL 的用戶名為 kong。
-參數(shù) -e “POSTGRES_DB=kong” 指定 PostgreSQL 的數(shù)據(jù)庫名稱為 kong。
-參數(shù) -e “POSTGRES_PASSWORD=kongpass” 指定 PostgreSQL 的用戶密碼為 kongpass。
2.3 初始化 PostgreSQL
接著,PowerShell 執(zhí)行下面命令,會在 postgres 數(shù)據(jù)庫,初始化 Kong Gateway 數(shù)據(jù)。命令里面也指定了 Kong Gateway 的版本 3.6.1.0。
docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-postgresql-13" -e "KONG_PG_PASSWORD=kongpass" -e "KONG_PASSWORD=test" kong/kong-gateway:3.6.1.0 kong migrations bootstrap
-參數(shù) -e “KONG_DATABASE=postgres” 指定數(shù)據(jù)庫的類型為 PostgreSQL 數(shù)據(jù)庫。
-參數(shù) “KONG_PG_HOST=kong-postgresql-13” 指定 PostgreSQL 的服務(wù)器地址,應(yīng)為同在 kong-net 網(wǎng)絡(luò),所以就可以使用 PostgreSQL 的容器名稱,即主機(jī)名。
-參數(shù) “KONG_PG_PASSWORD=kongpass” 連接 PostgreSQL 的密碼。
-參數(shù) kong/kong-gateway:3.6.1.0 指定 kong-gateway 初始化數(shù)據(jù)的版本。
2.4 部署 Kong Gateway
接著,PowerShell 執(zhí)行下面命令,會部署 kong-gateway 服務(wù)。這里安裝的是 3.6.1.0 ,如果安裝其他版本,需要注意依賴 DB 的對應(yīng)版本。
docker run -d --name kong-gateway-3.6.1.0 --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-postgresql-13" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kongpass" -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_ADMIN_GUI_URL=http://localhost:8002" -e KONG_LICENSE_DATA -p 8000:8000 -p 8443:8443 -p 8001:8001 -p 8444:8444 -p 8002:8002 -p 8445:8445 -p 8003:8003 -p 8004:8004 kong/kong-gateway:3.6.1.0
-參數(shù) -e “KONG_DATABASE=postgres” 指定 Kong Gateway 使用的數(shù)據(jù)庫類型為 PostgreSQL 數(shù)據(jù)庫。
-參數(shù) -e “KONG_PG_HOST=kong-postgresql-13” 指定 PostgreSQL 的服務(wù)器地址,應(yīng)為同在 kong-net 網(wǎng)絡(luò),所以就可以使用 PostgreSQL 的容器名稱,即主機(jī)名。
-參數(shù) -e “KONG_PG_USER=kong” 連接 PostgreSQL 的用戶名。
-參數(shù) -e “KONG_PG_PASSWORD=kongpass” 連接 PostgreSQL 的密碼。
-參數(shù) -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” 指定 Kong Gateway 相關(guān)日志的存儲目錄。
-參數(shù) -e “KONG_ADMIN_LISTEN=0.0.0.0:8001” 指定 Kong Gateway Admin API 的端口為 8001。
-參數(shù) -e “KONG_ADMIN_GUI_URL=http://localhost:8002” 指定 Kong Gateway 默認(rèn) UI 管理界面訪問端口為 8002。
三、部署 KongA UI
部署 KongA 管理界面,需要先部署依賴的 db、初始化 db 數(shù)據(jù),然后再進(jìn)行 KongA 部署。
3.1 部署 PostgreSQL
KongA 也依賴于 DB,所以先部署一個 KongA 需要的數(shù)據(jù)庫 PostgreSQL。建議不要和 Kong 所使用的數(shù)據(jù)庫放一起,解耦。在 PowerShell 執(zhí)行下面命令,即可啟動一個 PostgreSQL 服務(wù),這里使用的是 9.6 版本,不建議使用其他版本。
docker run -d --name konga-postgresql-9.6 --network=kong-net --privileged=true -p 5433:5432 -v C:\ProgramDatas\Docker\Containers\konga-postgresql-9.6:/var/lib/postgresql/data -e "POSTGRES_USER=konga" -e "POSTGRES_DB=konga" -e "POSTGRES_PASSWORD=12345" postgres:9.6
-參數(shù) -v C:\ProgramDatas\Docker\Containers\konga-postgresql-9.6:/var/lib/postgresql/data 將 PostgreSQL 容器內(nèi)的 /var/lib/postgresql/data 目錄映射到物理機(jī)的 C:\ProgramDatas\Docker\Containers\kong-database-9.6 進(jìn)行數(shù)據(jù)持久化。
-參數(shù) -e “POSTGRES_USER=kong” 指定 PostgreSQL 的用戶名為 konga。
-參數(shù) -e “POSTGRES_DB=kong” 指定 PostgreSQL 的數(shù)據(jù)庫名稱為 konga。
-參數(shù) -e “POSTGRES_PASSWORD=kongpass” 指定 PostgreSQL 的用戶密碼為 12345。
3.2 初始化 PostgreSQL
KongA 也需要初始化數(shù)據(jù),在 PowerShell 執(zhí)行下面命令,即可初始化 KongA 數(shù)據(jù)。命令里面也指定了KongA 的版本 0.14.9。
docker run --rm --network=kong-net pantsel/konga:0.14.9 -c prepare -a postgres -u postgres://konga:12345@konga-postgresql-9.6:5432/konga
-參數(shù) -u postgres://konga:12345@konga-postgresql-9.6:5432/konga 指定連接 PostgreSQL 的信息(db host、db user、db pwd、db name)。
3.3 部署 KongA
接著,PowerShell 執(zhí)行下面命令,會部署 KongA 服務(wù)。這里安裝的是 0.14.9 ,如果安裝其他版本,需要注意依賴 DB 的對應(yīng)版本。KongA 已經(jīng)在 2020 停止更新了,這里安裝的是最后一個版本。
docker run -d --net=kong-net -p 1337:1337 -e "DB_ADAPTER=postgres" -e "DB_HOST=konga-postgresql-9.6" -e "DB_PORT=5432" -e "DB_USER=konga" -e "DB_PASSWORD=12345" -e "DB_DATABASE=konga" -e "NODE_ENV=production" --name konga-0.14.9 pantsel/konga:0.14.9
3.4 連接 Kong Gateway
打開瀏覽器,訪問 http://localhost:1337 地址,第一次登錄需要初始化用戶信息。連接 Kong Gateway ,如果 Kong Gateway 和 KongaA 在同一個 Docker 需要用 http://host.docker.internal:8001 地址。否則,使用 http://127.0.0.1:8001/ 則會在 KongA 容器內(nèi)部,找到自己的 8001 端口,無法連接到 Kong Gateway,這一點(diǎn)日志也有體現(xiàn)。

到此這篇關(guān)于Windows Docker部署Kong網(wǎng)關(guān)的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker部署Kong網(wǎng)關(guān) 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談docker --privileged=true參數(shù)作用
這篇文章主要介紹了淺談docker --privileged=true參數(shù)作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Docker安裝分布式vLLM的實(shí)現(xiàn)步驟
本文主要介紹了Docker使用vLLM庫進(jìn)行分布式推理和服務(wù)部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
使用Docker構(gòu)建Python FastAPI鏡像的最佳實(shí)踐
本文分享了優(yōu)化Python FastAPI應(yīng)用Docker部署的關(guān)鍵技巧:使用slim基礎(chǔ)鏡像減小體積,通過多階段構(gòu)建分離編譯與運(yùn)行環(huán)境,利用.dockerignore排除無關(guān)文件,推薦采用非root用戶運(yùn)行增強(qiáng)安全性,需要的朋友可以參考下2026-02-02
centos7安裝/升級docker和docker compose方式
文章總結(jié)了在升級Docker和安裝Docker Compose時遇到的問題,包括舊版安裝和新版安裝的差異、docker-compose的安裝問題以及卸載前的注意事項(xiàng)2024-12-12
解決docker使用GDB,無法進(jìn)入斷點(diǎn)的問題
這篇文章主要介紹了解決docker使用GDB,無法進(jìn)入斷點(diǎn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker中安裝Redis并開啟遠(yuǎn)程訪問的詳細(xì)步驟
這篇文章主要介紹了Docker中安裝Redis并開啟遠(yuǎn)程訪問的詳細(xì)步驟,文中有詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-01-01

