跟領(lǐng)導(dǎo)匯報(bào)工作,總被說「沒重點(diǎn)」,這可咋整?。?/a>
本內(nèi)容來源于@什么值得買APP,觀點(diǎn)僅代表作者本人|作者:羊刀仙
如果你在使用Docker,一定遇到過這種場景:部署了好幾個(gè)容器,想訪問某個(gè)不是太常用的服務(wù),卻要dockerps或打開控制臺(tái),翻翻端口映射,甚至還要記住容器在哪臺(tái)機(jī)器上。
對(duì)于開發(fā)者、運(yùn)維,或者愛折騰的玩家來說,這簡直是日常的痛點(diǎn)。好消息是,有一個(gè)輕量、零配置、實(shí)用的工具能幫你解決這個(gè)問題,它就是——Dockpeek。
像我這臺(tái)TS-464C的測試機(jī),部署Docekr久不久就來次失敗,一看日志大多是端口用掉了。
Dockpeek
這是一款簡單輕量的Docker端口顯示工具,除了列出所有項(xiàng)目占用外,還支持搜索框直接搜,更主要的是他支持接入多主機(jī)。跟lsof-i:說再見~
大概的展示如下所示。
主要特點(diǎn):
端口映射概覽——快速查看所有正在運(yùn)行的容器及其暴露的端口。
點(diǎn)擊訪問URL–只需單擊即可立即打開容器化的Web應(yīng)用程序。
多主機(jī)支持——在一個(gè)儀表板內(nèi)管理多個(gè)Docker主機(jī)和套接字。
零配置——自動(dòng)檢測正在運(yùn)行的容器,無需設(shè)置。
部署流程
先行操作
這部分是針對(duì)多設(shè)備用戶,要在你的2,3,4等設(shè)備上進(jìn)行操作。
需要在子設(shè)備上,打開/etc/docker/daemon.json文件,添加額外配置:
{"hosts":["unix:///var/run/docker.sock","tcp://0.0.0.0:2375"]}
0.0.0.0表示監(jiān)聽所有,可替換對(duì)應(yīng)設(shè)備的具體IP地址。2375是Docker官方默認(rèn)設(shè)定的遠(yuǎn)程訪問端口。
/var/run/docker.sock是一個(gè)Unix域套接字(Unixdomainsocket)文件,用于本地進(jìn)程之間通信。它是Docker守護(hù)進(jìn)程(dockerd)提供的默認(rèn)API接口,允許客戶端(比如docker命令行)與守護(hù)進(jìn)程通信。
開始部署
使用威聯(lián)通NAS作為部署平臺(tái),以DockerCompose的方式進(jìn)行部署。多設(shè)備用戶先別急復(fù)制代碼部署,還有額外的操作需要執(zhí)行。
直接本機(jī)監(jiān)控,代碼如下:
services:dockpeek:image:ghcr.io/dockpeek/dockpeek:latestcontainer_name:dockpeekenvironment:-SECRET_KEY=my_secret_key#可借助工具生成-USERNAME=admin#面板賬戶,自定義-PASSWORD=admin#面板密碼,自定義ports:-"3420:8000"#左側(cè)端口自行更改volumes:-/var/run/docker.sock:/var/run/docker.sockrestart:unless-stopped
多主機(jī),變量解釋見下文:
services:dockpeek:image:ghcr.io/dockpeek/dockpeek:latestcontainer_name:dockpeekports:-"3420:8000"volumes:-/var/run/docker.sock:/var/run/docker.sockrestart:unless-stoppedenvironment:-SECRET_KEY=my_secret_key-USERNAME=admin-PASSWORD=admin#DockerHost1-DOCKER_HOST_1_URL=unix:///var/run/docker.sock-DOCKER_HOST_1_NAME=TS-464C-DOCKER_HOST_1_PUBLIC_HOSTNAME=NAS#DockerHost2-DOCKER_HOST_2_URL=tcp://192.168.50.20:2375-DOCKER_HOST_2_NAME=TS-673A-DOCKER_HOST_2_PUBLIC_HOSTNAME=NAS
使用socket-proxy(推薦用于遠(yuǎn)程或多主機(jī)設(shè)置):
services:dockpeek:image:ghcr.io/dockpeek/dockpeek:latestcontainer_name:dockpeekenvironment:-SECRET_KEY=my_secret_key-USERNAME=admin-PASSWORD=admin-DOCKER_HOST=tcp://dockpeek-socket-proxy:2375#主Docker套接字的URL,如果省略,則默認(rèn)為本地套接字。建議與本地代理一起使用ports:-"3420:8000"depends_on:-dockpeek-socket-proxyrestart:unless-stoppeddockpeek-socket-proxy:image:lscr.io/linuxserver/socket-proxy:latestcontainer_name:dockpeek-socket-proxyenvironment:-CONTAINERS=1-IMAGES=1-PING=1-VERSION=1-LOG_LEVEL=infovolumes:-/var/run/docker.sock:/var/run/docker.sock:roread_only:truetmpfs:-/runports:-"2375:2375"restart:unless-stopped
添加其他主機(jī):
environment:-SECRET_KEY=my_secret_key-USERNAME=admin-PASSWORD=admin#可選:通過設(shè)置這些變量來添加額外的Docker主機(jī)#每個(gè)主機(jī)都需要DOCKER_HOST_N_URL、DOCKER_HOST_N_NAME以及可選的DOCKER_HOST_N_PUBLIC_HOSTNAME#DockerHost1-DOCKER_HOST_1_URL=unix:///var/run/docker.sock#Docker套接字URL-DOCKER_HOST_1_NAME=MyServer1#用戶界面中顯示的名稱-DOCKER_HOST_1_PUBLIC_HOSTNAME=#可選的鏈接公共主機(jī)名或IP;如果為空,則從URL推斷#DockerHost2-DOCKER_HOST_2_URL=tcp://192.168.50.20:2375#Docker代理URL-DOCKER_HOST_2_NAME=TS-673A#用戶界面中顯示的名稱-DOCKER_HOST_2_PUBLIC_HOSTNAME=NAS#可選的公共主機(jī)名或IP#通過增加數(shù)量(3、4等)添加更多Docker主機(jī)
使用展示
部署完畢后,瀏覽器輸入NAS_IP:3420即可訪問服務(wù)。初始面板如下。
確實(shí)是極簡,默認(rèn)顯示所有設(shè)備端口。頂部有做設(shè)備區(qū)分。項(xiàng)目名/所屬設(shè)備、端口/轉(zhuǎn)發(fā)端口及協(xié)議、鏡像名、容器狀態(tài)都羅列的很清楚。
可通過搜索框進(jìn)行搜索,響應(yīng)很靈敏。
點(diǎn)擊藍(lán)色的端口,可直接打開服務(wù)。這里要說明的是,想要實(shí)現(xiàn)該效果需要我們填寫環(huán)境變量DOCKER_HOST_N_PUBLIC_HOSTNAME的變量,按需求填寫局域網(wǎng)IP、公網(wǎng)IP或是解析好的域名。
總結(jié)
簡單直白易用,支持多設(shè)備接入,個(gè)人認(rèn)為是比較不錯(cuò)的項(xiàng)目。
感謝觀看,本文完~
扛鼎之作《都市絕武醫(yī)神》,這個(gè)主角簡直要封神!
《都市絕武醫(yī)神》,為何被廣大書友追捧數(shù)年?跟著大部隊(duì)追就對(duì)了
好評(píng)如潮的都市超能爆款小說合集,資深書蟲也折服