使用说明
项目简介
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 环境中运行的容器列表以及它们的状态信息。
安装步骤
- 安装 UV 和 Python 3.12+: 确保你的系统已安装 UV 包管理器和 Python 3.12 或更高版本。UV 是一个快速的 Python 包安装和解析器,可以从 uv PyPI 获取安装指南。Python 3.12+ 可以从 Python 官网 下载安装。
- 安装 Docker Desktop 或 Docker Engine: Docker MCP 服务器需要依赖 Docker 环境才能工作,请确保已安装 Docker Desktop 或 Docker Engine 并正确配置。你可以从 Docker 官网 下载并安装 Docker Desktop,或根据你的操作系统安装 Docker Engine。
- 安装 Claude Desktop (可选): 如果你计划将 Docker MCP 服务器与 Claude Desktop 应用程序一起使用,请确保已安装 Claude Desktop。
- 克隆仓库: 使用 Git 克隆 'docker-mcp' 仓库到本地:
git clone https://github.com/MCP-Mirror/QuantGeekDev_docker-mcp.git cd docker-mcp - 创建并激活虚拟环境: 在项目目录下创建 Python 虚拟环境并激活:
python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows - 安装依赖: 使用 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'
基本使用方法
-
启动 MCP 服务器: 按照上述安装步骤配置好 Claude Desktop 或其他 MCP 客户端后,当客户端尝试连接 Docker MCP 服务器时,服务器将自动启动(通常是客户端首次调用服务器功能时)。
-
通过 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 客户端。
-
可用工具: Docker MCP 服务器提供了以下工具供 LLM 客户端调用:
- 'create-container': 创建 Docker 容器
- 'deploy-compose': 部署 Docker Compose stack
- 'get-logs': 获取容器日志
- 'list-containers': 列出容器
你可以参考仓库的 README 文件中 "Available Tools" 部分,了解每个工具的具体参数和使用方法。
注意: 首次使用或进行开发调试时,可能需要查阅仓库 README 中的 "Development" 和 "Debugging" 部分,了解如何进行本地开发配置和使用 MCP Inspector 进行调试。
信息
分类
开发者工具