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

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

文章圖片

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

文章圖片

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

文章圖片

不再死記IP,告別端口地獄,Dockpeek讓你一鍵直達Docker服務
本內容來源于@什么值得買APP , 觀點僅代表作者本人 |作者:羊刀仙


如果你在使用 Docker , 一定遇到過這種場景:部署了好幾個容器 , 想訪問某個不是太常用的服務 , 卻要 docker ps或打開控制臺 , 翻翻端口映射 , 甚至還要記住容器在哪臺機器上 。
對于開發者、運維 , 或者愛折騰的玩家來說 , 這簡直是日常的痛點 。 好消息是 , 有一個輕量、零配置、實用的工具能幫你解決這個問題 , 它就是 —— Dockpeek 。
像我這臺TS-464C的測試機 , 部署Docekr久不久就來次失敗 , 一看日志大多是端口用掉了 。



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

主要特點:

  • 端口映射概覽——快速查看所有正在運行的容器及其暴露的端口 。
  • 點擊訪問 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
多主機 , 變量解釋見下文:
【不再死記IP,告別端口地獄,Dockpeek讓你一鍵直達Docker服務】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」可直接導出配置文件 。

總結簡單直白易用 , 支持多設備接入 , 個人認為是比較不錯的項目 。
感謝觀看 , 本文完~
\u0002


    推薦閱讀