Docker容器可视化仪表盘DockDash

简介

什么是 DockDash ?

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

主要特点

  • Docker 自动发现:扫描所有运行中的容器,自动将其端口暴露为可视化服务
  • 网络扫描:对指定的 CIDR 网段进行端口扫描,发现非 Docker 管理的服务
  • 健康监控:定期检查每个服务的状态,实时显示存活状态
  • 健康历史:以颜色编码的时间线可视化过去 1730 天的正常运行时间
  • 容器日志:直接在 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 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 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 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
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 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 dockdash 和 子目录
mkdir -p /volume1/docker/dockdash/data

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

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

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>: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/2410.0.0.0/16),需要修改 NETWORK_CIDRS 环境变量
  4. 性能考虑:网络扫描会对指定网段的所有 65535TCP 端口进行扫描,建议只配置需要监控的网段范围
  5. 数据持久化:容器数据存储在 /app/data 目录,建议挂载到群晖本地文件夹以防数据丢失
  6. 认证配置:如需开启 OIDC 认证,请同时设置 OIDC_ISSUEROIDC_CLIENT_IDOIDC_CLIENT_SECRETSESSION_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