
Docker Swarm模式的简单监控仪表盘。
https://github.com/mohsenasm/swarm-dashboard/actions/workflows/main.yml/badge.svg](https://github.com/mohsenasm/swarm-dashboard/actions/workflows/main.yml)
Swarm Dashboard以服务和节点为单位展示Docker Swarm上所有运行中的任务,提供空间高效的可视化界面,适合快速概览Swarm状态。它还显示Swarm节点和容器的CPU/内存/磁盘使用情况。
适用于需要实时监控Docker Swarm集群状态的场景,包括服务部署情况、节点资源使用、容器运行状态等,帮助管理员快速了解集群健康状况。
仪表盘需要部署在某个Swarm管理器节点上。可通过以下Docker Compose文件进行配置:
yml# compose.yml version: "3" services: swarm-dashboard: image: mohsenasm/swarm-dashboard:latest volumes: - /var/run/docker.sock:/var/run/docker.sock # 挂载Docker套接字以访问Docker API ports: - 8080:8080 # 仪表盘Web端口 environment: TZ: "your_timezone" # 设置时区,如Asia/Shanghai ENABLE_AUTHENTICATION: "false" # 是否启用基本认证 ENABLE_HTTPS: "false" # 是否启用HTTPS NODE_EXPORTER_SERVICE_NAME_REGEX: "node-exporter" # node-exporter服务名称正则表达式 CADVISOR_SERVICE_NAME_REGEX: "cadvisor" # cadvisor服务名称正则表达式 deploy: placement: constraints: - node.role == manager # 约束仅部署在管理器节点 node-exporter: # 可选,用于收集节点资源使用数据 image: quay.io/prometheus/node-exporter:v1.6.1 volumes: - '/:/host:ro' # 只读挂载主机根文件系统 command: - '--path.rootfs=/host' # 指定根文件系统路径 deploy: mode: global # 全局部署,每个节点运行一个实例 cadvisor: # 可选,用于收集容器资源使用数据 image: gcr.io/cadvisor/cadvisor:v0.47.2 volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro deploy: mode: global # 全局部署,每个节点运行一个实例
部署命令:
bash$ docker stack deploy -c compose.yml sd
注意:node-exporter和cadvisor为可选组件,分别用于获取节点CPU/内存/磁盘使用情况和容器CPU/内存使用情况。若未指定NODE_EXPORTER_SERVICE_NAME_REGEX和CADVISOR_SERVICE_NAME_REGEX环境变量,默认不启用这些功能(为保持向后兼容性)。
以下环境变量可用于更多自定义配置:
| 环境变量 | 示例 | 注意事项 |
|---|---|---|
| PORT | 8080 | HTTP/HTTPS端口 |
| PATH_PREFIX | /prefix_path | 所有HTTP和WebSocket连接的路径前缀 |
| TZ | Asia/Tehran | 设置仪表盘显示的时区 |
| SHOW_TASK_TIMESTAMP | false | 是否显示任务时间戳,默认true |
| ENABLE_AUTHENTICATION | true | 是否启用基本认证,默认false |
| AUTHENTICATION_REALM | MyRealm | 启用认证时的领域名称 |
| USERNAME | admin | 认证用户名(启用认证时必填) |
| PASSWORD | supersecret | 认证密码(启用认证时必填) |
| ENABLE_HTTPS | true | 是否启用HTTPS,默认false |
| LEGO_PATH | /lego-files | 启用HTTPS时Lego(证书工具)的文件路径,建议创建命名卷以避免每次运行重新生成证书 |
| HTTPS_HOSTNAME | swarm-dashboard.example.com | HTTPS主机名(启用HTTPS时必填) |
| LEGO_NEW_COMMAND_ARGS | --accept-tos --email=*** --domains=swarm-dashboard.example.com --dns cloudflare run | Lego生成新证书的命令参数(启用HTTPS时必填) |
| LEGO_RENEW_COMMAND_ARGS | --accept-tos --email=*** --domains=swarm-dashboard.example.com --dns cloudflare renew | Lego续期证书的命令参数(启用HTTPS时必填) |
| CLOUDFLARE_EMAIL | *** | DNS提供商***(支持Lego兼容的https://go-acme.github.io/lego/dns/%EF%BC%89 |
| CLOUDFLARE_API_KEY | yourprivatecloudflareapikey | DNS提供商API密钥(支持Lego兼容的https://go-acme.github.io/lego/dns/%EF%BC%89 |
| DOCKER_UPDATE_INTERVAL | 5000 | Docker数据刷新间隔(毫秒) |
| METRICS_UPDATE_INTERVAL | 60000 | 指标数据刷新间隔(毫秒) |
| NODE_EXPORTER_SERVICE_NAME_REGEX | node-exporter | 用于启用node-exporter集成的服务名称正则表达式 |
| NODE_EXPORTER_INTERESTED_MOUNT_POINT | /rootfs | 若未为node-exporter指定--path.rootfs,可能需要配置此挂载点 |
| NODE_EXPORTER_PORT | 9100 | node-exporter服务端口 |
| CADVISOR_SERVICE_NAME_REGEX | cadvisor | 用于启用cadvisor集成的服务名称正则表达式 |
| CADVISOR_PORT | 8080 | cadvisor服务端口 |
已对发送到客户端的Docker事件数据进行脱敏处理。早期版本会发送完整Docker事件数据(包括环境变量,可能误存密码),建议使用新版本以提升安全性。
可通过ENABLE_AUTHENTICATION环境变量启用基本认证。WebSocket服务器会拒绝未提供有效认证令牌的连接。
可通过ENABLE_HTTPS环境变量启用HTTPS和WSS,支持Let's Encrypt集成(基于DNS挑战)。
对于正式部署,需考虑以下两点:
安全性:仪表盘的Node.js服务器直接访问Docker守护进程套接字(docker.sock),且运行在管理器节点上。若服务器被入侵,***者将获得整个Swarm的控制权,需严格限制访问。
性能:当前与Docker API的交互实现较为简单,每1000毫秒轮询一次API,若数据变化则推送到所有WebSocket连接。未来可能会优化为更高效的变更监听机制。
欢迎提交功能请求和拉取请求。本地构建/测试代码可参考test-cluster目录下的commands.md。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务