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