不再死记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


    推荐阅读