返回市场
容器心智

容器心智

作者:Ashfaqbs3 星标更新:2025-10-02

项目介绍

ContainMind 🐋🧠

替代文本

一款用于智能容器操作的通用容器管理MCP服务器

ContainMind是一款MCP(模型上下文协议)服务器,它为AI助手提供了强大的跨多个容器运行时的容器管理能力。通过自然语言交互,它可以无缝地检查、监控和分析容器化环境。

🎯 ContainMind是什么?

ContainMind弥合了AI助手(如Claude)与容器运行时之间的差距,允许您使用对话界面来管理和分析容器。它是一个统一的API,支持多个容器引擎,提供实时洞察和自动化功能。

🔥 解决的问题

面临的挑战

现代容器化应用程序经常面临以下问题:

  • 工具分散:Docker、Podman和其他运行时有不同的命令
  • 复杂调试:在多个容器的日志和指标中进行深入挖掘
  • 性能可见性:难以快速获取资源使用情况的见解
  • 手动检查:耗时的手动检查容器健康状况和配置
  • 上下文切换:在CLI工具和监控仪表板之间切换

解决方案

ContainMind提供:

  • 统一接口,适用于Docker和Podman(更多运行时即将推出)
  • 基于AI的分析,通过自然语言查询
  • 实时监控,易于解析的指标
  • 自动诊断,用于解决容器问题
  • 单一入口点,用于所有容器操作

🚀 特性

多运行时支持

  • Docker - 完全支持Docker引擎
  • Podman - 完整兼容Podman
  • 🔄 自动检测 - 自动检测并连接到可用的运行时
  • 🔌 插件式架构 - 易于扩展以支持其他运行时

全面的容器操作

📦 资源发现

  • 列出所有容器(运行中的和已停止的)
  • 列出容器镜像
  • 列出卷及其挂载点
  • 列出网络及连接的容器

🔍 深度检查

  • 详细的容器分析(配置、环境、挂载)
  • 实时资源统计(CPU、内存、网络I/O)
  • 可配置尾长度的容器日志
  • 系统范围的信息和容量

⚡ 性能监控

  • CPU使用百分比
  • 内存使用量和限制
  • 网络吞吐量(接收/发送)
  • 并行收集多个容器的统计信息

🛠️ 可用工具

工具描述使用场景
initialize_connection连接到容器运行时初始设置,自动检测或指定运行时
list_all_containers列出容器快速查看所有/正在运行的容器
list_all_images列出镜像检查可用镜像及其大小
list_all_volumes列出卷识别存储使用情况和孤立卷
list_all_networks列出网络网络拓扑和连通性
analyze_container深度容器检查调试配置,检查挂载和环境变量
get_container_stats资源使用指标性能监控和优化
get_container_logs获取容器日志排查应用问题
get_system_info系统信息检查整体容量和利用率

💡 ContainMind如何帮助

1. 问题分析

场景:您的应用程序崩溃了

您: "为什么我的mongo_local_standard容器显示高内存使用率?"
AI: [使用get_container_stats + analyze_container]
    "该容器使用了其2GB内存限制的89%。
     检查配置... docker-compose中未设置内存限制。
     建议:设置明确的内存限制并检查内存泄漏。"

2. 性能调优

场景:优化资源分配

您: "哪些容器使用最多的CPU?"
AI: [使用get_container_stats,all_running=True]
    "运行容器分析:
     1. kafka-1: 45% CPU - 考虑增加更多的broker
     2. redis-server: 12% CPU - 在正常范围内
     建议:Kafka是CPU密集型,考虑水平扩展。"

3. 快速诊断

场景:容器无法启动

您: "检查weaviate_db为何无法启动"
AI: [使用get_container_logs + analyze_container]
    "日志分析显示端口8080绑定失败。
     检查配置... 端口已被另一个服务占用。
     建议:更改端口映射或停止冲突的服务。"

4. 资源清理

场景:磁盘空间管理

您: "显示未使用的卷占用的空间"
AI: [使用list_all_volumes + list_all_containers]
    "找到45个未连接到任何容器的匿名卷。
     总可回收空间:约3.2GB
     安全删除:[列出卷ID]"

5. 健康监控

场景:主动监控

您: "给我一个容器环境的健康报告"
AI: [使用get_system_info + get_container_stats]
    "系统健康报告:
     - 总计7个容器(1个运行,6个已停止)
     - 内存:8.2GB / 16GB 已使用(51%)
     - CPU:运行容器负载正常
     - 网络:未检测到瓶颈
     警报:6个已停止的容器可能需要关注。"

6. 配置审计

场景:安全性和最佳实践

您: "检查包含敏感数据的容器的环境变量"
AI: [对每个容器使用analyze_container]
    "安全审计完成:
     - mongo_local_standard: 包含DB凭证的环境变量
     - redis-server: 未配置认证
     建议:使用Docker密钥或外部密钥管理。"

📋 安装与设置

先决条件

  • Python 3.8+
  • 安装Docker或Podman
  • 访问容器运行时套接字

安装依赖

pip install -r requirements.txt

运行服务器

python containmind.py

服务器默认启动在http://127.0.0.1:8081

使用Claude Desktop配置

添加到您的Claude Desktop配置文件(claude_desktop_config.json):


{"mcpServers": {
"docker-Mcp": {
    "command": "uv",
    "args": [
        "run",
        "--with",
        "fastmcp",
        "fastmcp",
        "run",
        "path\to\proxy.py" 
    ],
    "env": {},
    "transport": "stdio"
}

    }
    
}

🔧 使用示例

自动检测运行时

# ContainMind自动检测Docker或Podman
initialize_connection()

指定运行时

# 强制使用Docker
initialize_connection(backend="docker")

# 强制使用Podman
initialize_connection(backend="podman")

# 自定义套接字
initialize_connection(base_url="unix:///run/podman/podman.sock")

获取容器统计信息

# 单个容器
get_container_stats(container_id="mongo_local_standard")

# 所有正在运行的容器
get_container_stats(all_running=True, parallel=True)

🏗️ 架构

┌─────────────────────────────────────────┐
│         AI助手 (Claude)                  │
└────────────────┬────────────────────────┘
                 │ MCP协议
┌────────────────▼────────────────────────┐
│          ContainMind服务器              │
│  ┌─────────────────────────────────┐   │
│  │    工具接口层                    │   │
│  └──────────────┬──────────────────┘   │
│  ┌──────────────▼──────────────────┐   │
│  │   容器检查器                      │   │
│  └──────────────┬──────────────────┘   │
│  ┌──────────────▼──────────────────┐   │
│  │   后端抽象层                     │   │
│  │  ┌────────┐      ┌────────┐     │   │
│  │  │ Docker │      │ Podman │     │   │
│  │  └───┬────┘      └───┬────┘     │   │
│  └──────┼───────────────┼──────────┘   │
└─────────┼───────────────┼──────────────┘
          │               │
    ┌─────▼─────┐   ┌────▼─────┐
    │  Docker   │   │  Podman  │
    │  引擎     │   │  运行时  │
    └───────────┘   └──────────┘

🔐 安全注意事项

  • ContainMind需要访问容器运行时套接字
  • 以执行它的用户/进程的权限运行
  • 没有身份验证层(依赖于MCP传输安全性)
  • 建议:在可信环境中使用或添加身份验证

🚧 发展路线图

  • 容器生命周期管理(启动/停止/重启)
  • 镜像构建和管理
  • 卷管理操作
  • 网络配置工具
  • 容器健康检查
  • Web UI仪表板

🤝 贡献

欢迎贡献!改进领域:

  • 支持其他容器运行时
  • 增强指标收集
  • 性能优化
  • 文档改进

📄 许可证

本项目采用MIT许可证。

🙏 致谢

使用以下工具构建:


ContainMind - 让容器管理变得对话式、智能化和高效。🚀