Docker-mcp工具
时间: 2025-07-31 17:43:43 AIGC 浏览: 22
<think>我们正在讨论的是Docker-MCP工具,根据引用[1]和引用[3]的信息,Docker-MCP是一个支持MCP(Model Control Protocol)的Docker管理服务器。它允许客户端通过MCP接口直接与Docker进行交互,提供了一套工具使AI助手能够管理Docker容器。
根据引用[1]中的项目结构,Docker-MCP项目包含以下主要文件:
- `docker_executor.py`: 可能负责执行Docker命令
- `handlers.py`: 处理MCP请求
- `server.py`: MCP服务器主程序
引用[2]中提到了部署QuickChart-MCP-Server的示例,虽然它是另一个MCP服务器,但部署方式可能类似。因此,我们可以推测Docker-MCP的部署和运行方式可能也通过类似命令启动。
引用[3]将Docker-MCP列为最适合数据科学家的MCP服务器之一,说明它在数据科学领域有应用,比如管理Docker容器来运行数据科学环境。
根据以上信息,我们来整理Docker-MCP的功能和使用方法。
### Docker-MCP 功能
根据引用[1]描述,Docker-MCP主要功能包括:
1. **创建容器**:通过MCP接口创建Docker容器。
2. **部署Docker Compose**:能够部署使用Docker Compose定义的多容器应用。
3. **获取容器日志**:通过MCP请求获取容器的日志输出。
4. **列出所有容器**:查询当前运行的容器信息。
### Docker-MCP 使用方法
由于项目是一个MCP服务器,我们需要启动该服务器,然后通过MCP客户端(可能是AI助手)发送请求。
#### 1. 安装与运行
根据项目结构,它是一个Python项目,因此需要Python环境。我们可以使用以下步骤运行:
```bash
# 克隆项目(假设项目仓库地址已知,但引用中未给出,此处为示例)
git clone https://github.com/example/docker-mcp.git
cd docker-mcp
# 安装依赖(根据项目描述,可能使用poetry或pip)
# 如果使用poetry(根据pyproject.toml和uv.lock文件)
poetry install
# 运行服务器
poetry run python -m docker_mcp.server
```
或者,如果项目提供了可执行脚本,也可以直接运行。
#### 2. 配置
在运行之前,可能需要配置服务器监听的地址和端口,以及Docker的连接方式(默认可能使用本地Docker守护进程)。配置方式可能通过环境变量或配置文件。
#### 3. 通过MCP客户端交互
MCP客户端可以通过HTTP请求(或WebSocket,具体取决于实现)与服务器交互。请求的格式应遵循MCP协议。
例如,创建一个容器的请求可能如下(假设使用HTTP JSON):
```json
{
"action": "create_container",
"parameters": {
"image": "nginx:latest",
"name": "my-nginx",
"ports": {"80/tcp": 8080}
}
}
```
#### 4. 部署示例(参考引用[2]的QuickChart-MCP部署方式)
引用[2]中部署QuickChart-MCP-Server是通过1panel的AI模块导入MCP配置JSON。类似地,Docker-MCP也可以被配置为1panel中的MCP服务。配置JSON可能如下:
```json
{
"mcpServers": {
"docker-server": {
"command": "python",
"args": ["-m", "docker_mcp.server"]
}
}
}
```
然后,在1panel的AI模块中导入此配置,即可使用Docker-MCP服务。
### 注意事项
- Docker-MCP需要访问宿主机的Docker守护进程,因此需要确保运行服务器的用户有足够的权限(通常需要加入docker用户组)。
- 在生产环境中,应注意安全,比如限制可访问的客户端IP、使用TLS加密通信等。
### 总结
Docker-MCP是一个基于MCP协议的Docker管理工具,它提供了一个标准化的接口供AI助手操作Docker容器。通过启动Docker-MCP服务器,并配置客户端(如1panel)连接,可以实现对Docker的远程管理。
由于引用中未提供更详细的使用方法,以上内容基于项目结构和引用信息推断。具体使用请参考项目的README文档(如果可用)。
§§相关问题§§
1. Docker-MCP 支持哪些具体的 Docker 操作命令?
2. 如何为 Docker-MCP 配置安全认证?
3. Docker-MCP 与其他 Docker 管理工具(如 Portainer)相比有何优势?
4. 在 Kubernetes 集群中能否使用 Docker-MCP?</think>### Docker-MCP 工具详解
#### 一、核心功能
Docker-MCP 是基于 **MCP(Model Control Protocol)** 的 Docker 管理服务器,主要功能包括:
1. **容器全生命周期管理**
- 创建/删除容器
- 启动/停止容器
- 实时监控容器状态
2. **Docker Compose 部署**
- 解析和部署 `docker-compose.yml` 文件
- 管理多容器应用栈
3. **日志与诊断**
- 实时获取容器日志
- 支持日志过滤与搜索
4. **AI 助手集成**
- 允许 AI 通过 MCP 接口直接操作 Docker(如自动修复/扩容)[^1][^3]
5. **跨平台交互**
- 提供标准化 API 供客户端调用(支持 Python/HTTP 等)
#### 二、项目结构解析
```bash
docker-mcp/
├── src/
│ └── docker_mcp/
│ ├── docker_executor.py # Docker 命令执行核心
│ ├── handlers.py # MCP 请求处理器
│ ├── server.py # MCP 服务主入口
├── pyproject.toml # 依赖配置
└── uv.lock # 环境锁文件
```
关键组件:
- `docker_executor.py`:封装 Docker SDK 实现容器操作
- `handlers.py`:处理 MCP 协议中的 `create_container`, `get_logs` 等指令
#### 三、使用方法
##### 1. 启动 MCP 服务器
```bash
# 进入项目目录
cd docker-mcp
# 安装依赖(使用 Poetry)
poetry install
# 启动服务(默认端口 8000)
poetry run python -m docker_mcp.server
```
##### 2. 客户端调用示例
通过 HTTP 发送 MCP 协议指令:
```python
import requests
# 创建容器请求
payload = {
"action": "create_container",
"params": {
"image": "nginx:latest",
"name": "web-server",
"ports": {"80/tcp": 8080}
}
}
response = requests.post("http://localhost:8000/mcp", json=payload)
print(response.json()) # 返回容器ID
```
##### 3. 常用 MCP 指令
| 指令 | 参数示例 | 功能 |
|------|----------|------|
| `list_containers` | `{"all": true}` | 列出所有容器 |
| `compose_up` | `{"file": "docker-compose.yml"}` | 启动 compose 服务 |
| `get_logs` | `{"container": "web-server", "tail": 100}` | 获取尾部日志 |
| `exec_command` | `{"container": "app", "cmd": "ls /"}` | 执行容器内命令 |
##### 4. 集成到管理面板(如 1Panel)
在面板配置中导入 MCP 服务:
```json
{
"mcpServers": {
"docker-mcp": {
"command": "python",
"args": ["-m", "docker_mcp.server"]
}
}
}
```
配置后可通过面板 UI 直接管理 Docker[^2]。
#### 四、典型应用场景
1. **AI 自动化运维**
AI 助手通过 MCP 自动部署/修复容器(如检测到服务宕机时重启容器)
2. **数据科学流水线**
与 Jupyter-MCP 配合,一键部署数据分析环境[^3]
3. **持续集成系统**
在 CI/CD 中通过 MCP 指令管理构建容器
> **注意**:生产环境需在 `server.py` 中配置 TLS 加密和认证(参考 MCP 安全规范)。
阅读全文
相关推荐













