内容
# Docker MCP
> 个人笔记:请记住,所有人工智能本质上都是反应迟钝的天才。如果您的孩子出现问题,请根据需要重构指令。
通过 SSH 进行远程 Docker 管理 — 为 GitHub Copilot 会话公开为本地 MCP 服务器。
无需服务器端组件。MCP 在本地运行,并通过 SSH 连接到远程主机以执行 Docker 命令。
## 工具列表
| 工具 | 描述 |
|---|---|
| `docker_ps` | 列出容器 |
| `docker_logs` | 获取日志(尾部,开始时间,grep) |
| `docker_exec` | 在容器内运行命令 |
| `docker_run` | 启动新容器 |
| `docker_start` / `docker_stop` / `docker_restart` | 生命周期控制 |
| `docker_rm` | 删除容器 |
| `docker_inspect` | 详细的容器/镜像信息 |
| `docker_stats` | 资源使用快照 |
| `docker_top` | 容器内的进程 |
| `docker_images` | 列出镜像 |
| `docker_pull` / `docker_rmi` / `docker_build` | 镜像管理 |
| `docker_compose_ps/up/down/logs/restart/pull` | Compose 操作 |
| `docker_system_df` | 磁盘使用情况 |
| `docker_info` / `docker_version` | 系统信息 |
| `docker_network_ls` / `docker_volume_ls` | 网络和卷列表 |
## 安装配置
### 1. 克隆仓库
```bash
git clone git@github.com:Isak-Landin/mcp-docker-engine.git ~/mcp-docker-engine
cd ~/mcp-docker-engine
```
### 2. 安装依赖
```bash
sudo apt install python3.12-venv
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
```
### 3. 配置 SSH 目标
```bash
cp config.example.json config.json
# 使用您的服务器详细信息编辑 config.json
```
`config.json` 字段:
```json
{
"host": "your-server.example.com",
"user": "ubuntu",
"key_path": "~/.ssh/id_rsa",
"port": 22
}
```
### 4. 验证 SSH 访问
使用 `config.json` 中的值:
```bash
ssh -i <key_path> <user>@<host> docker ps
```
### 5. 注册 GitHub Copilot
#### Copilot CLI — `mcp-config.json`
在 Copilot 主目录的 `mcp-config.json` 中添加 `docker-mcp` 条目:
```json
"docker-mcp": {
"command": "/home/<your-username>/mcp-docker-engine/.venv/bin/python3",
"args": ["/home/<your-username>/mcp-docker-engine/server.py"]
}
```
#### VS Code — `.vscode/mcp.json`
在 `servers` 对象中添加 `docker-mcp` 条目:
```json
"docker-mcp": {
"type": "stdio",
"command": "/home/<your-username>/mcp-docker-engine/.venv/bin/python3",
"args": ["/home/<your-username>/mcp-docker-engine/server.py"]
}
```
#### Copilot 说明 — `copilot-instructions.md`
将 `copilot-instructions.md` 的内容添加到您的 Copilot 主目录的 `copilot-instructions.md` 或 `instructions.md` 中。
## 注意事项
- SSH 连接使用 `StrictHostKeyChecking=accept-new` - 对已知主机安全,会在密钥更改时警告。
- `docker_build` 和 `docker_pull` 使用 5-10 分钟超时;如果需要,请在 `server.py` 中调整 `timeout`。
- 对于 Compose 工具,`project_dir` 是包含 `docker-compose.yml` 的**远程**路径。
- `docker_logs` 和 `docker_exec` 将 stderr 重定向到 stdout,以便始终捕获输出。