(Docker項目實踐:部署docker-port-viewer監控容器端口)
一、docker-port-viewer介紹
1.1 docker-port-viewer簡介
docker-port-viewer是一個現代化的網絡應用程序,旨在幫助用户輕鬆查看和操作 Docker 容器的端口。它使用 TypeScript、React 和 Material-UI 構建,提供了一個直觀、響應式的用户界面,方便開發者和系統管理員管理和訪問他們的 Docker 容器。
1.2 docker-port-viewer主要特點
-
查看所有正在運行的 Docker 容器及其暴露的端口
實時展示所有運行中容器的基本信息與對外開放的端口。 -
按名稱搜索容器
提供快速搜索功能,幫助您在眾多容器中迅速定位目標。 -
按名稱或創建日期排序容器
支持對容器列表進行排序,便於組織和瀏覽。 -
查看容器詳細信息(名稱、鏡像、狀態、啓動時間、暴露端口等)
提供全面的容器元數據,方便監控和調試。 -
通過內嵌框架直接訪問容器網頁界面
無需離開應用即可在嵌入式 iframe 中預覽容器提供的 Web 頁面。 -
支持在新標籤頁中打開容器網頁界面
提供快捷鏈接,在新窗口中打開容器服務頁面,便於深入操作。 -
可自定義訪問容器的主機名
允許用户配置自定義域名或 IP 地址來訪問容器服務。 -
集成安全的 Docker 套接字代理
通過反向代理方式安全地連接 Docker 套接字,防止直接暴露敏感接口。 -
響應式設計,適配各種設備
基於 Material-UI 的響應式佈局,確保在桌面和移動設備上都能良好顯示。
二、本次實踐規劃
2.1 本地環境規劃
本次實踐為個人測試環境,操作系統版本為Ubuntu 22.04.1。
| hostname | IP地址 | 操作系統版本 | Docker版本 | 部署項目 |
|---|---|---|---|---|
| jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 | docker-port-viewer |
2.2 本次實踐介紹
1.本次實踐部署環境為個人測試環境,生產環境請謹慎; 2.在Docker環境下部署docker-port-viewer端口查看器。
三、本地環境檢查
3.1 檢查Docker服務狀態
檢查Docker服務是否正常運行,確保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 Wed 2025-07-02 14:16:57 UTC; 21h ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 878 (dockerd)
Tasks: 28
Memory: 1.2G
CPU: 1min 50.356s
CGroup: /system.slice/docker.service
├─ 878 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
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
四、拉取docker-port-viewer鏡像
拉取docker-port-viewer容器鏡像,如下所示:
docker pull tecnativa/docker-socket-proxy
docker pull docker pull hollowpnt/docker-port-viewer:latest
五、部署docker-port-viewer服務
5.1 創建部署目錄
- 創建部署目錄
mkdir -p /data/docker-port-viewer && cd /data/docker-port-viewer
5.2 編輯部署文件
在部署目錄下,創建docker-compose.yaml文件,如下所示:
vim docker-compose.yaml
services:
# Docker socket proxy for security
docker-socket:
image: tecnativa/docker-socket-proxy
container_name: docker-socket-proxy
environment:
- CONTAINERS=1
- POST=0
- PUT=0
- DELETE=0
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# Main application
docker-port-viewer:
image: hollowpnt/docker-port-viewer:latest
container_name: docker-port-viewer
ports:
- "3003:80"
5.3 創建docker-port-viewer容器
執行以下命令,創建docker-port-viewer容器。
docker compose up -d
5.4 查看docker-port-viewer容器狀態
檢查docker-port-viewer容器運行狀態,確保docker-port-viewer容器正常啓動。
root@jeven01:/data/docker-port-viewer# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUSPORTS
docker-port-viewer hollowpnt/docker-port-viewer:latest "/docker-entrypoint.…" docker-port-viewer About a minute ago Up About a minute0.0.0.0:3003->80/tcp, [::]:3003->80/tcp
docker-socket-proxy tecnativa/docker-socket-proxy "docker-entrypoint.s…" docker-socket About a minute ago Up About a minute2375/tcp
5.5 查看docker-port-viewer容器日誌
檢查docker-port-viewer容器運行日誌,確保docker-port-viewer服務正常運行。
docker compose logs
六、訪問docker-port-viewer服務
瀏覽器地址:
http://<個人的服務器IP>:3003,訪問docker-port-viewer的初始頁。如果無法訪問,請確保宿主機的防火牆已關閉或已放行相關端口,對於雲服務器還需配置相應的安全組規則。
將hostname改為自己服務器地址後,可以打開宿主機上的容器服務。
七、總結
通過本次 Docker 項目實踐,我們成功部署了 docker-port-viewer,實現了一個輕量級但功能強大的容器端口監控與訪問工具。該工具不僅提升了對運行中容器的可視化管理能力,還簡化了開發者調試和操作容器服務的流程。藉助現代前端技術和安全的 Docker 套接字代理機制,項目展示瞭如何將容器管理集成到現代化 Web 應用中,具備良好的實用性和擴展性。