使用说明
项目简介
Docker MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它允许用户通过自然语言,借助大型语言模型 (LLM) 客户端,来管理 Docker 环境。该服务器将 Docker 功能暴露为一系列资源和工具,使得用户可以使用自然语言指令来完成容器编排、镜像管理、网络配置和卷管理等任务。
主要功能点
- 自然语言容器编排: 通过 'docker_compose' Prompt,可以使用自然语言描述所需容器,让 LLM 自动生成 Docker 资源管理计划。
- Docker 资源管理: 提供丰富的工具 (Tools) 来管理 Docker 容器、镜像、网络和卷,包括创建、删除、列举、启动、停止等操作。
- 资源监控: 为每个 Docker 容器提供实时的日志 (Logs) 和统计信息 (Stats) 资源 (Resources),方便用户监控容器运行状态。
- 灵活的安装方式: 支持通过 'uv' 或 Docker 两种方式安装和运行服务器。
- 可配置的 Docker 客户端: 使用 Python Docker SDK,并允许通过环境变量进行 Docker 客户端配置。
安装步骤
本仓库提供了两种安装方式:使用 'uv' 或 Docker。
方式一:使用 'uv' (推荐用于开发环境)
-
确保已安装 'uv' 包管理器。
-
克隆本仓库到本地:
git clone https://github.com/ckreiling/mcp-server-docker.git cd mcp-server-docker -
在 MCP 客户端的配置文件中 (例如 Claude Desktop 的 'claude_desktop_config.json'),添加以下服务器配置:
"mcpServers": { "mcp-server-docker": { "command": "uv", "args": [ "--directory", "/path/to/repo", // 将 "/path/to/repo" 替换为仓库的本地路径 "run", "mcp-server-docker" ] } }
方式二:使用 Docker
-
克隆本仓库到本地:
git clone https://github.com/ckreiling/mcp-server-docker.git cd mcp-server-docker -
构建 Docker 镜像:
docker build -t mcp-server-docker . -
在 MCP 客户端的配置文件中,添加以下服务器配置:
"mcpServers": { "mcp-server-docker": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/var/run/docker.sock:/var/run/docker.sock", // 挂载 Docker socket,允许容器管理宿主机 Docker "mcp-server-docker:latest" ] } }注意: 使用 Docker 方式安装时,需要挂载宿主机的 Docker socket ('/var/run/docker.sock') 到容器中,以便容器内的 MCP 服务器能够控制宿主机的 Docker 服务。
服务器配置
MCP 客户端需要配置服务器的启动命令 ('command') 和参数 ('args') 才能连接到 Docker MCP Server。配置信息通常以 JSON 格式存在于 MCP 客户端的配置文件中。
以下是两种安装方式对应的服务器配置示例:
1. 使用 'uv' 方式的配置:
{ "mcpServers": { "mcp-server-docker": { "command": "uv", // 启动命令为 uv 包管理器 "args": [ "--directory", // uv 的参数:指定工作目录 "/path/to/repo", // 工作目录为仓库的本地路径,请替换为实际路径 "run", // uv 的参数:运行 Python 模块 "mcp-server-docker" // 运行 mcp_server_docker 模块 ] } } }
2. 使用 Docker 方式的配置:
{ "mcpServers": { "mcp-server-docker": { "command": "docker", // 启动命令为 docker "args": [ "run", // docker 的参数:运行容器 "-i", // docker 的参数:保持标准输入打开 "--rm", // docker 的参数:容器退出后自动删除 "-v", // docker 的参数:挂载卷 "/var/run/docker.sock:/var/run/docker.sock", // 将宿主机 Docker socket 挂载到容器内 "mcp-server-docker:latest" // 运行的镜像名称和标签 ] } } }
基本使用方法
-
启动 MCP 客户端 (例如 Claude Desktop)。
-
在客户端中选择配置好的 'mcp-server-docker' 服务器。
-
使用 'docker_compose' Prompt,通过自然语言描述您想要创建的 Docker 容器。例如:
- Prompt 名称: 'docker_compose'
- 参数:
{ "name": "nginx-demo", "containers": "deploy an nginx container exposing it on port 9000" }
-
与 LLM 进行交互,它会生成一个 Docker 资源管理计划。您可以 'apply' (应用) 该计划来创建 Docker 资源,或者提供反馈让 LLM 重新规划。
注意事项
- 敏感数据: 请勿在容器配置中使用敏感数据 (例如 API 密钥、数据库密码),因为与 LLM 的交互可能存在安全风险。
- 容器审查: 务必仔细审查 LLM 生成的容器配置,确保其安全性和符合预期。
- 安全限制: 为了安全起见,该 MCP 服务器不支持某些敏感的 Docker 选项,例如 '--privileged' 和 '--cap-add/--cap-drop'。
信息
分类
开发者工具