docker實踐:使用Docker部署Portall自托管端口管理系統(tǒng)
- 1.1 Portall簡介
- 1.2 核心特點
- 1.3 主要使用場景
- 2.1 本地環(huán)境規(guī)劃
- 2.2 本次實踐介紹
- 3.1 檢查Docker服務(wù)狀態(tài)
- 3.2 檢查Docker版本
- 3.3 檢查docker compose 版本
- 5.1 創(chuàng)建部署目錄
- 5.2 編輯部署文件
- 5.3 創(chuàng)建Portall容器
- 5.4 查看Portall容器狀態(tài)
- 5.5 查看Portall容器日志
- 6.1 訪問Portall初始頁
- 6.2 生成隨機(jī)端口
- 6.3 生成新端口
一、 Portall介紹
1.1 Portall簡介
Portall
是一個功能強(qiáng)大的Web界面工具,它為用戶提供了一個簡便的方法來跨多個主機(jī)管理端口和服務(wù)。這個應(yīng)用程序?qū)τ谀切┬枰瑫r處理多個網(wǎng)絡(luò)服務(wù)或應(yīng)用程序,并且希望簡化端口配置流程的IT專業(yè)人員、開發(fā)者以及系統(tǒng)管理員來說非常有用。
1.2 核心特點
- 輕松的端口管理:用戶可以很容易地添加新的端口,刪除不再需要的端口,并將它們分配給不同的服務(wù)和主機(jī)。
- 端口號生成:Portall 能夠快速生成唯一的端口號,以避免端口沖突問題,確保您的應(yīng)用能夠順利運行。
- 導(dǎo)入工具:支持通過粘貼 Caddyfile, Docker-Compose 文件或 JSON 數(shù)據(jù)等方式快速導(dǎo)入現(xiàn)有配置信息,從而加快設(shè)置過程。
- 自定義規(guī)則:允許用戶根據(jù)自己的需求設(shè)定特定的端口范圍,并在端口生成過程中排除某些不可用或者已經(jīng)占用的端口號。
- 塊級設(shè)計:采用直觀的拖放機(jī)制,方便用戶組織端口并在不同主機(jī)之間移動應(yīng)用。
- 主題選擇:目前提供了淺色和深色兩種主題模式,并計劃在未來推出更多個性化選項。
- CSS 自定義:開放了 CSS 定制接口,允許有經(jīng)驗的用戶自行調(diào)整UI樣式,實現(xiàn)高度個性化的視覺體驗。
- 移動響應(yīng)式布局:無論是在桌面還是移動設(shè)備上使用,都能獲得良好的用戶體驗,保證隨時隨地都可以高效地進(jìn)行端口管理。
1.3 主要使用場景
- 開發(fā)環(huán)境配置:當(dāng)開發(fā)者需要為多個項目創(chuàng)建獨立的服務(wù)時,Portall 可以幫助他們迅速完成端口配置工作。
- 微服務(wù)架構(gòu)部署:對于采用了微服務(wù)架構(gòu)的企業(yè)而言,Portall 有助于更有效地管理和跟蹤各個微服務(wù)所使用的端口情況。
- 容器化應(yīng)用部署:與Docker等容器技術(shù)結(jié)合使用時,Portall 能夠簡化容器間通信所需的端口映射配置。
- 多租戶平臺管理:提供托管服務(wù)的公司可以利用Portall來優(yōu)化其內(nèi)部資源分配,特別是在面對大量客戶請求時更加顯得重要。
- 網(wǎng)絡(luò)安全審計:安全團(tuán)隊可以通過Portall監(jiān)控整個網(wǎng)絡(luò)中所有開放端口的狀態(tài),及時發(fā)現(xiàn)潛在的安全隱患。
二、本次實踐規(guī)劃
2.1 本地環(huán)境規(guī)劃
本次實踐為個人測試環(huán)境,操作系統(tǒng)版本為|Ubuntu 22.04.1。
hostname IP地址 操作系統(tǒng)版本 Docker版本 鏡像版本 jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 latest
2.2 本次實踐介紹
1.本次實踐部署環(huán)境為個人測試環(huán)境,生產(chǎn)環(huán)境請謹(jǐn)慎; 2.在Docker環(huán)境下部署Portall應(yīng)用。
三、本地環(huán)境檢查
3.1 檢查Docker服務(wù)狀態(tài)
檢查Docker服務(wù)是否正常運行,確保Docker正常運行。
root@jeven01:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2024-09-09 10:43:35 CST; 3 weeks 5 days ago Main PID: 695 (dockerd) Tasks: 135 (limit: 9387) Memory: 4.0G CPU: 46min 46.854s CGroup: /system.slice/docker.service ├─ 695 /usr/bin/dockerd ├─ 846 containerd --config /var/run/docker/containerd/containerd.toml
3.2 檢查Docker版本
檢查Docker版本
root@jeven01:~# docker -v Docker version 27.1.1, build 6312585
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
root@jeven01:~# docker compose version Docker Compose version v2.19.1
四、下載Portall鏡像
拉取Portall鏡像,鏡像名稱為:
need4swede/portall:latest
。
root@jeven01:~# docker pull need4swede/portall:latest latest: Pulling from need4swede/portall f11c1adaa26e: Pull complete c1f67e58a3d2: Pull complete 9370038d1185: Pull complete 174cb52e37e5: Pull complete f259657f3656: Pull complete 8c7ba33c7383: Pull complete 1b1e330f6e57: Pull complete 584bbec0a7bd: Pull complete f0649a86b5c0: Pull complete Digest: sha256:8f15ad65667aff4221fcc7c13b2c9ff663b56d96fe4c0b4d7c512b678df557ac Status: Downloaded newer image for need4swede/portall:latest docker.io/need4swede/portall:latest
五、部署Portall應(yīng)用
5.1 創(chuàng)建部署目錄
- 創(chuàng)建部署目錄
mkdir -p /data/portall && cd /data/portall
5.2 編輯部署文件
- 如果使用docker-cli部署,可參考以下命令:
docker run -d --restart always --name portall -p 9900:8080 -v /data/portall/data:/app/instance -e PORT=8080 -e SECRET_KEY=K8dCmZnXa3LQbPfRtGjW need4swede/portall:latest
在`部署目錄下,創(chuàng)建docker-compose.yaml文件,其中宿主機(jī)映射端口等可以自定義配置。
vim docker-compose.yaml
version: '3' services: rediary: image: need4swede/portall:latest container_name: portall restart: always ports: - 9900:8080 volumes: - /data/portall/data:/app/instance environment: - PORT=8080 - SECRET_KEY=K8dCmZnXa3LQbPfRtGjW
5.3 創(chuàng)建Portall容器
執(zhí)行以下命令,創(chuàng)建Portall容器。
root@jeven01:/data/portall# docker compose up -d [+] Running 2/2 Network portall_default Created 0.1s Container portall Started 0.3s
5.4 查看Portall容器狀態(tài)
檢查Portall容器狀態(tài)狀態(tài),確保Portall容器正常啟動。
root@jeven01:/data/portall# docker compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS portall need4swede/portall:latest "python app.py" rediary 25 seconds ago Up 24 seconds 0.0.0.0:9900->8080/tcp, :::9900->8080/tcp
5.5 查看Portall容器日志
檢查Portall容器日志,確保Portall服務(wù)正常運行。
root@jeven01:/data/portall# docker compose logs portall | INFO:root:Existing database found. portall | INFO:root:No migrations folder found. Ensuring all tables exist... portall | INFO:root:Database tables verified/created. portall | INFO:root:Starting Portall on port 8080 with debug mode: False portall | * Serving Flask app 'app' portall | * Debug mode: off portall | INFO:werkzeug:WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. portall | * Running on all addresses (0.0.0.0) portall | * Running on http://127.0.0.1:8080 portall | * Running on http://192.168.144.2:8080 portall | INFO:werkzeug:Press CTRL+C to quit
六、訪問Portall服務(wù)
6.1 訪問Portall初始頁
訪問地址:http://192.168.3.88:9900,將IP替換為自己服務(wù)器IP地址。如果無法訪問到以下頁面,則檢查宿主機(jī)的防火墻是否關(guān)閉或者放行相關(guān)端口,云服務(wù)器則還需要設(shè)置安全組規(guī)則。
6.2 生成隨機(jī)端口
新增IP地址,將宿主機(jī)本地IP填寫即可。
填寫描述信息,確認(rèn)生成新隨機(jī)端口。
- 查看ports列表
6.3 生成新端口
- 在ports管理模塊中,點擊“+”號,自行添加端口。
七、總結(jié)
通過Docker部署Portall自托管端口管理系統(tǒng),我們顯著簡化了服務(wù)器端口的管理流程。利用Docker容器化技術(shù),我們能夠快速搭建和配置Portall環(huán)境,確保了系統(tǒng)的一致性和可移植性。使用Docker Compose進(jìn)行多容器管理,不僅簡化了服務(wù)的啟動和維護(hù),還使得依賴項的安裝和配置變得輕松。最終,團(tuán)隊能夠更方便地監(jiān)控和管理服務(wù)器端口,提高了網(wǎng)絡(luò)資源的利用率和整體系統(tǒng)的安全性。
作者聲明本文無利益相關(guān),歡迎值友理性交流,和諧討論~
,