Docker容器可视化仪表盘DockDash

简介

什么是 DockDash ?

DockDash 是一个自托管的 Docker 仪表盘,用于可视化 Docker 容器和网络服务。它可以帮助用户自动发现容器、监控服务健康状态、检测镜像更新,并在交互式画布上绘制服务连接关系。

主要特点

  • Docker 自动发现:扫描所有运行中的容器,自动将其端口暴露为可视化服务

  • 网络扫描:对指定的 CIDR 网段进行端口扫描,发现非 Docker 管理的服务

  • 健康监控:定期检查每个服务的状态,实时显示存活状态

  • 健康历史:以颜色编码的时间线可视化过去 17 或 30 天的正常运行时间

  • 容器日志:直接在 UI 中流式显示容器日志,支持时间戳解析和 ANSI 颜色过滤

  • 文件浏览器:浏览容器文件系统,查看和编辑文本文件

  • 终端访问:通过 xterm.js 在容器内执行交互式 Shell 命令

  • 更新监控:检查 Docker 镜像是否有新版本,自动标记过时容器

  • 变更日志:自动获取 GitHub Release 信息,显示在服务详情面板中

  • 交互式画布:可拖拽节点、绘制服务连接、缩放和平移

  • 多主题支持:内置多种 UI 主题,在设置页面即可切换

  • OIDC 认证:支持标准 OpenID Connect 单点登录(KeycloakAuthentik 等)

应用场景

  • 家庭服务器监控:实时掌握群晖上所有 Docker 容器的运行状态

  • 开发环境管理:快速查看微服务架构中各服务的连接关系和健康状态

  • 运维巡检:通过健康历史图表,直观发现服务的稳定性趋势

  • 镜像更新提醒:及时获知容器是否有可用更新,避免错过重要安全补丁

  • 远程服务器管理:连接远程 Docker 守护进程,统一管理多台服务器的容器

DockDash 是一个功能强大的 Docker 可视化管理工具,将容器监控、日志查看、文件管理和终端操作整合在一个优雅的界面中。

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为  v0.8.0

注意:由于该项目需要挂载 /var/run/docker.sock(Docker Socket),群晖 Docker 套件无法通过图形化方式挂载此路径,因此只能通过命令行方式安装。

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 dockdash 和 子目录
mkdir -p /volume1/docker/dockdash/data

# 进入 dockdash 目录
cd /volume1/docker/dockdash

# 运行容器
docker run -d
  --name=dockdash
  --restart=unless-stopped
  -p 3157:3001
  -v /var/run/docker.sock:/var/run/docker.sock
  -v $(pwd)/data:/app/data
  -e NETWORK_CIDRS=192.168.0.1/24
  dockdash

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

services:
  dockdash:
    image: ghcr.io/dougmaitelli/dockdash:latest
    container_name: dockdash
    restart: unless-stopped
    ports:
      - "3157:3001"
    environment:
      - LOG_LEVEL=info
      - NETWORK_CIDRS=192.168.0.1/24  # 修改为你的局域网网段
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  # Docker Socket
      - /volume1/docker/dockdash/data:/app/data  # 数据持久化

然后通过 SSH 登录到您的群晖,执行下面的命令:

# 新建文件夹 dockdash 和 子目录
mkdir -p /volume1/docker/dockdash/data

# 进入 dockdash 目录
cd /volume1/docker/dockdash

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://:3157 即可进入 DockDash 仪表盘

进入 Discover –> Scan Docker

会搜索出本机的 docker 容器

可以单个 Import,也可以 Import All (40) 一次性导入

加入 Dashboard

网络也是一样,可以在容器、网络等之间通过连线描述关系

双击可以查看容器的详情,包括运行时间,日志等等

提示DockDash 默认没有开启认证。如果需要暴露在公网,建议配置 OIDC 认证或通过反向代理添加认证层。

注意事项

  1. Docker Socket 权限:挂载 /var/run/docker.sock 等同于给予容器对 Docker 守护进程的完全控制权,相当于 root 权限。请确保仅在可信环境中使用

  2. 网络安全:如果担心安全问题,可以使用 tecnativa/docker-socket-proxy 作为 Docker 访问代理,限制 API 访问权限

  3. 网段配置:默认只扫描 192.168.0.1/24,如果你的局域网使用其他网段(如 192.168.1.0/24 或 10.0.0.0/16),需要修改 NETWORK_CIDRS 环境变量

  4. 性能考虑:网络扫描会对指定网段的所有 65535 个 TCP 端口进行扫描,建议只配置需要监控的网段范围

  5. 数据持久化:容器数据存储在 /app/data 目录,建议挂载到群晖本地文件夹以防数据丢失

  6. 认证配置:如需开启 OIDC 认证,请同时设置 OIDC_ISSUEROIDC_CLIENT_IDOIDC_CLIENT_SECRET 和 SESSION_SECRET 环境变量

参考文档

dougmaitelli/DockDash: A self-hosted dashboard for visualizing Docker containers and network services
地址:https://github.com/dougmaitelli/DockDash

tecnativa/docker-socket-proxy: Hardened Docker Socket Proxy for enhanced security
地址:https://github.com/Tecnativa/docker-socket-proxy

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

为您推荐