docker mcp

使用说明

项目简介

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 进行调试。

服务器信息