使用说明

项目简介

Docker MCP 是一个 Model Context Protocol (MCP) 服务器,它充当 Claude 或其他兼容 MCP 协议的 LLM 客户端与 Docker 环境之间的桥梁。通过 Docker MCP,用户可以使用自然语言指令,让 LLM 客户端(如 Claude)来管理本地或远程 Docker 环境中的容器和 Docker Compose stacks。

主要功能点

  • 容器创建和实例化: 允许 LLM 指示创建和运行新的 Docker 容器,例如指定镜像名称、容器名称、端口映射和环境变量。
  • Docker Compose Stack 部署: 支持 LLM 部署和管理 Docker Compose 编排的多容器应用栈,通过提供 Docker Compose YAML 文件即可完成部署。
  • 容器日志检索: LLM 可以请求获取指定 Docker 容器的实时或历史日志,方便问题排查和监控。
  • 容器列表和状态监控: 允许 LLM 获取当前 Docker 环境中运行的容器列表以及它们的状态信息。

安装步骤

  1. 安装 UV 和 Python 3.12+: 确保你的系统已安装 UV 包管理器和 Python 3.12 或更高版本。UV 是一个快速的 Python 包安装和解析器,可以从 uv PyPI 获取安装指南。Python 3.12+ 可以从 Python 官网 下载安装。
  2. 安装 Docker Desktop 或 Docker Engine: Docker MCP 服务器需要依赖 Docker 环境才能工作,请确保已安装 Docker Desktop 或 Docker Engine 并正确配置。你可以从 Docker 官网 下载并安装 Docker Desktop,或根据你的操作系统安装 Docker Engine。
  3. 安装 Claude Desktop (可选): 如果你计划将 Docker MCP 服务器与 Claude Desktop 应用程序一起使用,请确保已安装 Claude Desktop。
  4. 克隆仓库: 使用 Git 克隆 'docker-mcp' 仓库到本地:
    git clone https://github.com/MCP-Mirror/QuantGeekDev_docker-mcp.git
    cd docker-mcp
  5. 创建并激活虚拟环境: 在项目目录下创建 Python 虚拟环境并激活:
    python -m venv venv
    source venv/bin/activate   # Linux/macOS
    venv\Scripts\activate  # Windows
  6. 安装依赖: 使用 UV 包管理器安装项目依赖:
    uv sync

服务器配置

要将 Docker MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),你需要提供服务器的启动命令和参数。以下是 Claude Desktop 配置文件 'claude_desktop_config.json' 中 'mcpServers' 字段的配置示例:

{
  "mcpServers": {
    "docker-mcp": {  // 服务器名称,客户端用此名称引用
      "command": "uvx", // 启动服务器的命令,uvx 用于运行已安装的包
      "args": [
        "docker-mcp"  //  docker-mcp 是安装后可执行的服务器程序名,对应项目入口
      ]
    }
  }
}

配置说明:

  • '"docker-mcp"': 服务器的名称,可以自定义,客户端会使用这个名称来识别和调用该服务器。
  • '"command": "uvx"': 指定启动服务器的命令为 'uvx'。'uvx' 是 'uv' 包管理器提供的用于运行已安装包的可执行命令。
  • '"args": ["docker-mcp"]': 传递给 'uvx' 命令的参数,这里 '"docker-mcp"' 是指要运行的 Python 包入口点,对应仓库中的 'docker-mcp' 包。

配置文件路径:

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

基本使用方法

  1. 启动 MCP 服务器: 按照上述安装步骤配置好 Claude Desktop 或其他 MCP 客户端后,当客户端尝试连接 Docker MCP 服务器时,服务器将自动启动(通常是客户端首次调用服务器功能时)。

  2. 通过 LLM 客户端与 Docker 交互: 在 Claude Desktop 或其他配置了 Docker MCP 服务器的 LLM 客户端中,你可以使用自然语言指令来指示执行 Docker 操作。例如:

    • "创建一个名为 'my-nginx' 的 Nginx 容器,端口映射为 8080:80"
    • "部署一个 Redis 和 Web 应用的 Docker Compose stack,项目名称为 'my-webapp'"
    • "查看容器 'my-nginx' 的日志"
    • "列出所有正在运行的 Docker 容器"

    LLM 客户端会将这些自然语言指令转换为对 Docker MCP 服务器的 MCP 请求,服务器解析请求并调用相应的 Docker 工具来执行操作,最终将结果返回给 LLM 客户端。

  3. 可用工具: Docker MCP 服务器提供了以下工具供 LLM 客户端调用:

    • 'create-container': 创建 Docker 容器
    • 'deploy-compose': 部署 Docker Compose stack
    • 'get-logs': 获取容器日志
    • 'list-containers': 列出容器

    你可以参考仓库的 README 文件中 "Available Tools" 部分,了解每个工具的具体参数和使用方法。

注意: 首次使用或进行开发调试时,可能需要查阅仓库 README 中的 "Development" 和 "Debugging" 部分,了解如何进行本地开发配置和使用 MCP Inspector 进行调试。

信息

分类

开发者工具