Token导航 LogoToken导航TokenDH.com
docktor (Hwclass) logo
运维云端stdio官方级别未说明来源级核验

docktor (Hwclass)

MCP Server

Docktor是一款基于Docker的AI原生容器自动扩展工具,利用LLM和MCP协议监控和扩展Docker Compose服务,适用于动态负载管理和资源优化场景。

工具数

4

提示词数

0

GitHub Stars

7

资源数

0
AI驱动GoClaude容器编排Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hwclass

提供方

hwclass

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm \

详细介绍

容器的AI原生自动缩放(基于Docker的AI堆栈构建)

使用LLM和MCP监控和扩展Docker Compose服务的自治SRE代理。

](https://docs.docker.com/compose/) ![Model Runner](https://www.docker.com/products/model-runner/) ![MCP](https://modelcontextprotocol.io/) ![cagent](https://github.com/docker/cagent)

______________________________________________________________________

🚀 快速开始

先决条件:Docker桌面+模型运行器、cagent、Go 1.21+(参见 安装)

自主守护程序模式(推荐)

对于全自动24/7操作,无需用户干预:

# 1. Clone and build
git clone https://github.com/hwclass/docktor
cd docktor
go build -o docktor ./cmd/docktor

# 2. Start autonomous daemon (auto-scales automatically)
./docktor daemon start

# 3. Generate load to trigger scaling (in another terminal)
# Option A: Incremental load simulator (recommended for demos)
bash examples/single-service/load-incremental.sh

# Option B: Quick test - instant high load (90 seconds)
bash examples/single-service/load-quick.sh

# 4. Monitor daemon in real-time
./docktor daemon logs

# 5. Check status
./docktor daemon status

# 6. Stop daemon when done
./docktor daemon stop

高级选项:

# Custom compose file and service
./docktor daemon start --compose-file ./production.yaml --service api

# Manual mode (requires approval for each action)
./docktor daemon start --manual

互动模式(用于学习)

对于具有聊天界面的交互式探索,需要用户干预:

# 1. Run Docktor (opens cagent TUI)
./docktor ai up

# 2. In the TUI, send a message to start autoscaling:
# Type: "Start autoscaling web service now"

# 3. Generate load (in another terminal)
bash examples/load-cpu.sh

# 4. Watch containers scale
bash examples/watch.sh

模式比较:

  • Daemon(推荐):完全自主,在后台运行,无需用户输入
  • 交互式:手动聊天界面,有助于学习如何做出决策

📖 完整的测试指南:参见 AUTOSCALE_GUIDE.md

______________________________________________________________________

📦 Docker镜像(构建并推送到Docker Hub)

构建容器镜像(包括docker+compose CLI,以便Docktor可以扩展主机):

export IMAGE=scalingdocktor/docktor:latest
docker build -t "$IMAGE" .

推送到Docker Hub:

docker login
docker push "$IMAGE"

从镜像运行Docktor(挂载你的compose文件、配置和Docker套接字):

docker run --rm \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(pwd)/docktor.yaml:/app/docktor.yaml \
  -v $(pwd)/docker-compose.yaml:/app/docker-compose.yaml \
  "$IMAGE" daemon start --config /app/docktor.yaml

对于多拱(如果使用buildx):

docker buildx build --platform linux/amd64,linux/arm64 -t "$IMAGE" . --push

______________________________________________________________________

⚙️ 配置

Docktor使用 docktor.yaml 用于每个应用程序的缩放配置。这允许在不更改代码的情况下自定义阈值。

配置示例

# docktor.yaml
version: "1"

service: web
compose_file: docker-compose.yaml

scaling:
  cpu_high: 75.0        # Scale up when CPU >= 75%
  cpu_low: 20.0         # Scale down when CPU "
          value: 75.0
      scale_down_when:
        - metric: cpu.avg
          op: ""
          value: 500
        - metric: queue.rate_in
          op: ">"
          value: 200
      scale_down_when:
        # AND logic: scale only if ALL conditions match
        - metric: queue.backlog
          op: " 80%: scale up (+2)
                       If CPU  80%, scale up

Calling apply_scale(service: "web", target_replicas: 4, reason: "CPU high at 89.3%")
→ SUCCESS: scaled web from 2 to 4

示例3:健康范围→ Hold

Calling get_metrics(container_regex: "web", window_sec: 30)
→ {"examples-web-1": 45.2, "examples-web-2": 52.1}

Agent analyzes:
  - Current replicas: 2
  - Average CPU: 48.6%
  - Decision: 20%  80%: scale up (+2 replicas)
      - If avg CPU  Hold off on scaling for 10 minutes, running tests
    > Why did you scale to 4 replicas?
    > Be more aggressive with scaling today

第二阶段:Web界面

  • \[ \] 本地Web UI:在本地主机上运行的基于浏览器的聊天界面

- 实时聊天的React/Vue前端 - 实时指标仪表板,显示CPU、副本、决策 - 缩放事件的视觉时间线 - 自然语言命令的聊天面板 - 例子: http://localhost:3000 → Docktor控制面板

  • \[ \] 决策评审模式:缩放前的视觉审批工作流程

- 代理人建议:“从2开始→ 5 (CPU为87%)” - 用户点击:\[批准\]\[拒绝\]\[修改\] - 从模式中学习:记住批准/拒绝

第三阶段:情报

  • \[ \] 具有历史决策记忆的RAG:从过去的缩放决策中学习

- DuckDB+VSS插件:使用向量嵌入存储所有决策 - 查询类似的过去情况:“上次CPU达到85%时发生了什么?” - 模式识别:“周一早上总是需要6+个复制品” - 上下文感知决策:“上周负载相似,扩展到5运行良好” - 可解释的人工智能:“我之所以扩大规模,是因为3个类似的案例显示了性能问题” - 数据库架构:

    CREATE TABLE decisions (
      timestamp TIMESTAMP,
      metrics JSON,           -- CPU, memory, replicas at decision time
      action VARCHAR,         -- scale_up, scale_down, hold
      from_replicas INT,
      to_replicas INT,
      reason TEXT,
      outcome TEXT,           -- success, rolled_back, user_overridden
      embedding FLOAT[384]    -- Vector for similarity search
    );

- 聊天UI集成:“告诉我你为什么做出这个决定”→ 类似案例的矢量搜索

  • \[ \] 从反馈中学习:代理记住用户首选项

- 跟踪用户覆盖的决策 - 根据模式调整未来的行为 - “用户总是喜欢在周五进行保守的缩放”

  • \[ \] 自然语言政策:用简明英语定义规则

- “在工作时间(上午9点至下午5点),切勿将比例降至2以下” - “宁愿扩大规模,也不愿降低性能” - “无论负载如何,最多8个副本” - 自动存储和执行策略

集成与可观察性

  • \[ \] Docker桌面扩展:带有交互式控件的可视化仪表板
  • \[ \] 网页用户界面:基于浏览器的控制面板,具有实时聊天功能
  • \[ \] 普罗米修斯出口:监测系统的指标
  • \[ \] 警报集成:松弛/不协调通知和命令
  • \[ \] Webhook支持:触发外部事件的缩放

______________________________________________________________________

贡献

欢迎投稿!需要帮助的领域:

  1. 代理改进:帮助使cagent守护进程模式更加稳定
  2. 其他指标:内存、网络、自定义指标
  3. 更好的配方:更智能的缩放计算
  4. 文档:教程、示例、用例
  5. 测试:更多负载场景,边缘情况

______________________________________________________________________

许可证

MIT许可证-请参阅 许可证 文件

_免责声明:Docktor是一个由社区构建的独立开源项目。它不隶属于或认可Docker,股份有限公司。_

______________________________________________________________________

学分

内置:

______________________________________________________________________

Docktor -因为你的容器值得一位人工智能医生🩺🤖

目录标签

目录标签

AI驱动GoClaude容器编排本地部署自动扩展Docker生态系统负载均衡

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP