不再死記IP,告別端口地獄,Dockpeek讓你一鍵直達Docker服務

如果你在使用 Docker,一定遇到過這種場景:部署了好幾個容器,想訪問某個不是太常用的服務,卻要 docker ps或打開控制檯,翻翻端口映射,甚至還要記住容器在哪臺機器上。

對於開發者、運維,或者愛折騰的玩家來說,這簡直是日常的痛點。好消息是,有一個輕量、零配置、實用的工具能幫你解決這個問題,它就是 —— Dockpeek。

像我這臺TS-464C的測試機,部署Docekr久不久就來次失敗,一看日誌大多是端口用掉了。

Dockpeek

這是一款簡單輕量的 Docker 端口顯示工具,除了列出所有項目佔用外,還支持搜索框直接搜,更主要的是他支持接入多主機。跟lsof -i :<ports>說再見~

大概的展示如下所示。

主要特點:

  • 端口映射概覽——快速查看所有正在運行的容器及其暴露的端口。

  • 點擊訪問 URL – 只需單擊即可立即打開容器化的 Web 應用程序。

  • 多主機支持——在一個儀表板內管理多個 Docker 主機和套接字。

  • 零配置——自動檢測正在運行的容器,無需設置。

部署流程

先行操作

這部分是針對多設備用戶,要在你的2,3,4等設備上進行操作。

需要在子設備上,打開 /etc/docker/daemon.json 文件,添加額外配置:

{

"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]

}

0.0.0.0表示監聽所有,可替換對應設備的具體IP地址。2375 是 Docker 官方默認設定的遠程訪問端口。

/var/run/docker.sock 是一個 Unix 域套接字(Unix domain socket) 文件,用於本地進程之間通信。它是 Docker 守護進程(dockerd)提供的默認 API 接口,允許客戶端(比如 docker 命令行)與守護進程通信。

開始部署

使用威聯通NAS作爲部署平臺,以Docker Compose的方式進行部署。多設備用戶先別急複製代碼部署,還有額外的操作需要執行。

直接本機監控,代碼如下:

services:

   dockpeek:

      image: ghcr.io/dockpeek/dockpeek:latest

      container_name: dockpeek

      environment:

         - SECRET_KEY=my_secret_key # 可藉助工具生成

         - USERNAME=admin # 面板賬戶,自定義

         - PASSWORD=admin # 面板密碼,自定義

      ports:

         - "3420:8000" # 左側端口自行更改

      volumes:

         - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped

多主機,變量解釋見下文:

services:

   dockpeek:

      image: ghcr.io/dockpeek/dockpeek:latest

      container_name: dockpeek

      ports:

         - "3420:8000"

      volumes:

         - /var/run/docker.sock:/var/run/docker.sock

      restart: unless-stopped

      environment:

         - SECRET_KEY=my_secret_key

         - USERNAME=admin

         - PASSWORD=admin

         # Docker Host 1

         - DOCKER_HOST_1_URL=unix:///var/run/docker.sock

         - DOCKER_HOST_1_NAME=TS-464C

         - DOCKER_HOST_1_PUBLIC_HOSTNAME=NAS

         # Docker Host 2

         - DOCKER_HOST_2_URL=tcp://192.168.50.20:2375

         - DOCKER_HOST_2_NAME=TS-673A

         - DOCKER_HOST_2_PUBLIC_HOSTNAME=NAS

使用socket-proxy(推薦用於遠程或多主機設置):

services:

   dockpeek:

      image: ghcr.io/dockpeek/dockpeek:latest

      container_name: dockpeek

      environment:

         - SECRET_KEY=my_secret_key

         - USERNAME=admin

         - PASSWORD=admin

         - DOCKER_HOST=tcp://dockpeek-socket-proxy:2375 # 主 Docker 套接字的 URL,如果省略,則默認爲本地套接字。建議與本地代理一起使用

      ports:

         - "3420:8000"

      depends_on:

         - dockpeek-socket-proxy

      restart: unless-stopped

   dockpeek-socket-proxy:

      image: lscr.io/linuxserver/socket-proxy:latest

      container_name: dockpeek-socket-proxy

      environment:

         - CONTAINERS=1

         - IMAGES=1

         - PING=1

         - VERSION=1

         - LOG_LEVEL=info

      volumes:

         - /var/run/docker.sock:/var/run/docker.sock:ro

      read_only: true

      tmpfs:

         - /run

      ports:

         - "2375:2375"

      restart: unless-stopped

添加其他主機:

      environment:

         - SECRET_KEY=my_secret_key

         - USERNAME=admin

         - PASSWORD=admin

# 可選:通過設置這些變量來添加額外的 Docker 主機

# 每個主機都需要 DOCKER_HOST_N_URL、DOCKER_HOST_N_NAME 以及可選的 DOCKER_HOST_N_PUBLIC_HOSTNAME

# Docker Host 1

         - DOCKER_HOST_1_URL=unix:///var/run/docker.sock # Docker 套接字 URL

         - DOCKER_HOST_1_NAME=MyServer1 # 用戶界面中顯示的名稱

         - DOCKER_HOST_1_PUBLIC_HOSTNAME= # 可選的鏈接公共主機名或 IP;如果爲空,則從 URL 推斷

# Docker Host 2

         - DOCKER_HOST_2_URL=tcp://192.168.50.20:2375 # Docker 代理 URL

         - DOCKER_HOST_2_NAME=TS-673A # 用戶界面中顯示的名稱

         - DOCKER_HOST_2_PUBLIC_HOSTNAME=NAS # 可選的公共主機名或 IP

# 通過增加數量(3、4 等)添加更多 Docker 主機

使用展示

部署完畢後,瀏覽器輸入NAS_IP:3420 即可訪問服務。初始面板如下。

確實是極簡,默認顯示所有設備端口。頂部有做設備區分。項目名/所屬設備、端口/轉發端口及協議、鏡像名、容器狀態都羅列的很清楚。

可通過搜索框進行搜索,響應很靈敏。

點擊藍色的端口,可直接打開服務。這裏要說明的是,想要實現該效果需要我們填寫環境變量DOCKER_HOST_N_PUBLIC_HOSTNAME的變量,按需求填寫局域網IP、公網IP或是解析好的域名。

對於搜索出的結果,點擊右上角的「Export」可直接導出配置文件。

總結

簡單直白易用,支持多設備接入,個人認爲是比較不錯的項目。

感謝觀看,本文完~

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com