article
README
🚀 🐋 Docker MCP 服务器
这是一个用于管理 Docker 的自然语言控制台进程 (MCP) 服务器,它能让你通过自然语言轻松编排容器、检查和调试运行中的容器,还能使用 Docker 卷管理持久数据,为服务器管理员和爱好者提供了极大的便利。
🚀 快速开始
先决条件
- 确保已安装
uv(参见 文档 了解详情) - 克隆此仓库
安装
Claude Desktop
- MacOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
开发/未发布的服务器配置
"mcpServers": {
"mcp-server-docker": {
"command": "uv",
"args": [
"--directory",
"/path/to/repo",
"run",
"mcp-server-docker"
]
}
}
✨ 主要特性
- 🚀 使用自然语言编排容器
- 🔍 检查和调试运行中的容器
- 📀 使用 Docker 卷管理持久数据
❓ 适用人群
- 服务器管理员:可连接到远程 Docker 引擎,例如管理公共面向的网站。
- 爱好者:能在本地启动容器,而不必自己运行任何命令。
💻 使用示例
基础用法
🎻 docker_compose
使用自然语言编排容器。提供一个项目名称,以及对所需容器的描述,让大语言模型 (LLM) 负责其余的工作。此提示指示 LLM 进入一个 plan+apply 循环。与 LLM 的交互将涉及以下步骤:
- 你向 LLM 发送指令,说明要启动哪些容器
- LLM 计算出简洁的自然语言计划,并将其呈现给你
- 你可以:
- 应用该计划
- 向 LLM 提供反馈,LLM 重新计算计划
示例
- 名称:
nginx,容器: "部署一个暴露在端口 9000 的 nginx 容器" - 名称:
wordpress,容器: "部署一个 WordPress 容器和一个支持的 MySQL 容器,并将 WordPress 暴露在端口 9000"
恢复项目
当你开始一个新的聊天时,LLM 将收到使用给定名称创建的任何容器、卷和网络的状态。这主要用于清理,如果你失去了负责许多容器的聊天。
📚 详细文档
资源
服务器为每个容器实现了一些资源:
- 统计信息: CPU、内存等容器信息
- 日志: 查看容器的日志尾部
工具
容器
list_containerscreate_containerrun_containerrecreate_containerstart_containerfetch_container_logsstop_containerremove_container
镜像
list_imagespull_imagepush_imagebuild_imageremove_image
网络
list_networkscreate_networkdelete_networkconnect_container_to_networkdisconnect_container_from_network
卷
list_volumesinspect_volumeremove_volume
📄 免责声明
本项目旨在为用户提供一个实验性的自然语言接口来与 Docker 交互。它可能不适用于生产环境,且功能可能会有变化。
📋 注意事项
⚠️ 重要提示
- 使用前请备份重要数据
- 确保你了解所有命令的潜在影响
- 在公共网络上使用时要小心
💡 使用建议
按照快速开始部分的步骤进行安装和配置,使用
docker_compose时清晰准确地描述所需容器,以便 LLM 更好地编排。
微信扫一扫