Windows?Docker部署Kong網(wǎng)關(guān)的實(shí)現(xiàn)步驟
一、Kong 網(wǎng)關(guān)版本
Kong Gateway 有開源免費(fèi)版和企業(yè)版,兩個(gè)不同的版本。當(dāng)前企業(yè)版有些功能是需要收費(fèi)的,今天這里部署的是開源免費(fèi)版本 3.6.x 系列。兩個(gè)版本之間的區(qū)別,請(qǐng)見 官方文檔。
二、部署 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í)行下面命令,則會(huì)創(chuàng)建 kong-net 網(wǎng)絡(luò),如果已存在 kong-net 網(wǎng)絡(luò),則不需要?jiǎng)?chuàng)建。
docker network create kong-net
2.2 部署 PostgreSQL
接著,PowerShell 執(zhí)行下面命令,會(huì)部署 Kong Gateway 依賴的 PostgreSQL 數(shù)據(jù)庫(kù)。這里安裝的是 13 版本,DB 和 Kong Gateway 的般般之間會(huì)有依賴關(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ù)庫(kù)名稱為 kong。
-參數(shù) -e “POSTGRES_PASSWORD=kongpass” 指定 PostgreSQL 的用戶密碼為 kongpass。
2.3 初始化 PostgreSQL
接著,PowerShell 執(zhí)行下面命令,會(huì)在 postgres 數(shù)據(jù)庫(kù),初始化 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ù)庫(kù)的類型為 PostgreSQL 數(shù)據(jù)庫(kù)。
-參數(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í)行下面命令,會(huì)部署 kong-gateway 服務(wù)。這里安裝的是 3.6.1.0 ,如果安裝其他版本,需要注意依賴 DB 的對(duì)應(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ù)庫(kù)類型為 PostgreSQL 數(shù)據(jù)庫(kù)。
-參數(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)日志的存儲(chǔ)目錄。
-參數(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,所以先部署一個(gè) KongA 需要的數(shù)據(jù)庫(kù) PostgreSQL。建議不要和 Kong 所使用的數(shù)據(jù)庫(kù)放一起,解耦。在 PowerShell 執(zhí)行下面命令,即可啟動(dòng)一個(gè) 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ù)庫(kù)名稱為 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í)行下面命令,會(huì)部署 KongA 服務(wù)。這里安裝的是 0.14.9 ,如果安裝其他版本,需要注意依賴 DB 的對(duì)應(yīng)版本。KongA 已經(jīng)在 2020 停止更新了,這里安裝的是最后一個(gè)版本。
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 在同一個(gè) Docker 需要用 http://host.docker.internal:8001 地址。否則,使用 http://127.0.0.1:8001/ 則會(huì)在 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker 指定IP地址、與主機(jī)同網(wǎng)段IP
這篇文章主要介紹了docker 指定IP地址、與主機(jī)同網(wǎng)段IP,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05利用Dockerfile制作個(gè)人的鏡像文件詳細(xì)講解
Docker是一個(gè)開源的應(yīng)用容器引擎,Dockerfile是用來構(gòu)建Docker鏡像的構(gòu)建文件,是由一系列命令和參數(shù)構(gòu)成的腳本,本文將給大家詳細(xì)介紹如何利用Dockerfile制作個(gè)人的鏡像文件,感興趣的同學(xué)可以借鑒參考2023-06-06Docker Volume存儲(chǔ)卷的實(shí)現(xiàn)
Docker的存儲(chǔ)卷是一種將宿主機(jī)的本地文件系統(tǒng)中的某個(gè)目錄與容器內(nèi)部的文件系統(tǒng)中的某個(gè)目錄建立綁定關(guān)系的機(jī)制,下面就來介紹一下,感興趣的可以了解一下2024-12-12Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法
本文主要介紹了Docker-Compose搭建Spark集群的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05在Ubuntu?Server?22.04上安裝?Docker的詳細(xì)步驟記錄
通過使用容器技術(shù),Docker能夠讓開發(fā)人員將應(yīng)用及其依賴環(huán)境一同打包,從而實(shí)現(xiàn)快速部署、一致的開發(fā)環(huán)境和優(yōu)秀的可移植性,這篇文章主要給大家給大家介紹了關(guān)于在Ubuntu?Server?22.04上安裝?Docker詳細(xì)步驟的相關(guān)資料,需要的朋友可以參考下2024-08-08解決docker?pull出現(xiàn)錯(cuò)誤:Error?response?from?daemon
這篇文章主要給大家介紹了關(guān)于解決docker?pull出現(xiàn)錯(cuò)誤:Error?response?from?daemon的相關(guān)資料,這個(gè)錯(cuò)誤提示一般是因?yàn)槟銢]有權(quán)限拉取對(duì)應(yīng)的鏡像,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12被棄用的 Docker 會(huì)被 Podman 取代嗎
Docker 是一種以容器化的方式打包、分發(fā)和部署應(yīng)用程序的方式。自 2013 年 3 月 13 日初始版本發(fā)布以來,Docker 已成為容器業(yè)界的事實(shí)標(biāo)準(zhǔn)。而Kubernetes 是一款由 Google 開發(fā)的開源容器編排系統(tǒng)2020-12-12docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對(duì)于bind?mount的優(yōu)點(diǎn)及volume操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫(kù)的詳細(xì)過程
NebulaGraph Studio是一款可以通過Web訪問的開源圖數(shù)據(jù)庫(kù)可視化工具,搭配NebulaGraph內(nèi)核使用,提供構(gòu)圖、數(shù)據(jù)導(dǎo)入、編寫nGQL查詢等一站式服務(wù),這篇文章主要介紹了docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫(kù)的詳細(xì)過程,感興趣的朋友一起看看吧2023-12-12