使用说明

项目简介

Docker-MCP 是一个基于 Model Context Protocol (MCP) 的服务器,旨在扩展大型语言模型(LLM)在 Docker 环境中的操作能力。通过与 Claude Desktop 等 MCP 客户端集成,用户可以使用自然语言指令,便捷地管理 Docker 容器和 Docker Compose 堆栈,实现容器的创建、部署、监控和日志查看等功能。

主要功能点

  • 容器创建和启动: 支持创建和启动独立的 Docker 容器。
  • Docker Compose 堆栈部署: 支持通过 Docker Compose 文件部署多容器应用堆栈。
  • 容器日志检索: 能够获取指定 Docker 容器的实时日志信息。
  • 容器列表查看: 可以列出当前 Docker 环境中所有容器的状态和信息。

安装步骤

  1. 环境准备: 确保已安装以下软件:

    • UV 包管理器
    • Python 3.12 或更高版本
    • Docker Desktop 或 Docker Engine
    • Claude Desktop 客户端
  2. 克隆仓库: 从 GitHub 克隆 Docker-MCP 仓库到本地:

    git clone https://github.com/QuantGeekDev/docker-mcp.git
  3. 进入项目目录: 切换到克隆下来的 'docker-mcp' 目录:

    cd docker-mcp
  4. 创建并激活虚拟环境: 为了隔离项目依赖,建议创建并激活 Python 虚拟环境:

    python -m venv venv
    source venv/bin/activate   # Linux/macOS
    venv\Scripts\activate      # Windows
  5. 安装依赖: 使用 UV 包管理器安装项目所需的 Python 依赖:

    uv sync

服务器配置

要将 Docker-MCP 服务器与 MCP 客户端(如 Claude Desktop)连接,您需要在客户端的配置文件中添加服务器配置信息。以下是 Claude Desktop 的配置示例,您需要将这段 JSON 配置添加到 Claude Desktop 的配置文件 ('claude_desktop_config.json') 中。

Claude Desktop 配置文件路径:

  • MacOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

配置内容 (JSON):

{
  "mcpServers": {
    "docker-mcp": {
      "command": "uvx",  // 运行可执行文件的命令,uvx 用于执行已安装的包
      "args": [
        "docker-mcp"   //  docker-mcp 包的入口点,对应 src/docker_mcp/__init__.py 中的 main 函数
      ]
    }
  }
}

参数说明:

  • '"command": "uvx"': 指定用于启动服务器的命令。'uvx' 是 UV 包管理器提供的用于运行已安装包的命令。
  • '"args": ["docker-mcp"]': 指定传递给 'uvx' 命令的参数。'docker-mcp' 是 Docker-MCP 包的入口点,它会执行 'src/docker_mcp/init.py' 文件中的 'main' 函数,从而启动 MCP 服务器。

基本使用方法

  1. 启动 Claude Desktop: 确保已按照上述步骤配置好 Claude Desktop 客户端,并启动 Claude Desktop 应用。
  2. 与 Claude 交互: 在 Claude 的聊天界面中,您可以使用自然语言指令来管理 Docker 环境。例如:
    • 创建容器: 您可以指示 Claude "创建一个名为 my-web 的 nginx 容器,端口映射为 80:80"。
    • 部署 Compose 堆栈: 您可以要求 Claude "部署一个包含 web 和 redis 服务的 docker-compose 堆栈,项目名称为 my-stack"。
    • 查看容器日志: 您可以询问 Claude "查看容器 my-web 的日志"。
    • 列出容器: 您可以让 Claude "列出所有正在运行的 Docker 容器"。

Claude 会将您的自然语言指令转换为对 Docker-MCP 服务器的 MCP 请求,服务器会执行相应的 Docker 操作,并将结果返回给 Claude,最终以自然语言形式呈现给用户。

信息

分类

开发者工具