
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务