从一个地方控制所有的Docker主机。 Docker Manager MCP让AI助手管理容器,部署堆栈,并监控整个基础设施的服务——无需任何配置。
curl -sSL https://raw.githubusercontent.com/jmagar/docker-mcp/main/install.sh | bash
就这样!安装程序:
无需手动配置。 如果你能通过SSH连接到它,Docker Manager就能控制它。
只需用简单的英语与你的AI助手交流。 不需要复杂的命令或JSON——只需描述你想对Docker基础设施做什么。
docker_hosts简化Docker主机管理工具。
操作: • list: 列出所有已配置的Docker主机
• add: 添加新的Docker主机(自动运行测试连接和发现)
• ports: 列出或检查主机上的端口使用情况
• import_ssh: 从SSH配置导入主机(自动运行测试连接和发现)
• cleanup: Docker系统清理操作
• test_connection: 测试主机连通性(也运行发现)
• discover: 发现主机上的路径和能力
• edit: 修改主机配置
• remove: 从配置中移除主机
• disk_usage: 只读Docker磁盘使用概要(cleanup check的别名)
自然语言示例:
"添加一个新的名为production-1的Docker主机,地址为192.168.1.100,用户为dockeruser"
"使用SSH密钥~/.ssh/staging_key添加名为staging的主机,地址为10.0.1.50"
"列出我所有的Docker主机"
"检查production-1上正在使用的端口"
"从我的SSH配置导入主机"
"使用安全模式清理production-1上的Docker"
"测试到staging-server的连接"
"发现所有主机的能力"
"将production-1的compose路径更新为/opt/stacks"
"从我的配置中移除old-server主机"
docker_container综合Docker容器管理工具。
操作: • list: 列出主机上的容器
• info: 获取容器信息
• start: 启动容器
• stop: 停止容器
• restart: 重启容器
• remove: 移除容器
• logs: 获取容器日志
• pull: 将容器镜像拉取到主机
自然语言示例:
"列出production-1上的所有容器"
"包括staging上的已停止容器"
"显示production-1上nginx容器的信息"
"启动production-1上的wordpress容器"
"强制停止staging上的mysql数据库,超时时间为30秒"
"重启production-1上的web服务器容器"
"从staging移除旧缓存容器"
"获取production-1上api-server最后200行日志"
"拉取production-1上的最新nginx镜像"
docker_compose综合Docker Compose堆栈管理工具。
操作: • list: 列出主机上的堆栈
• view: 查看堆栈的compose文件
• deploy: 部署堆栈
• up/down/restart/build/pull: 管理堆栈生命周期
• ps: 显示堆栈服务(状态和端口)
• discover: 发现主机上的compose路径
• logs: 获取堆栈日志
• migrate: 在主机之间迁移堆栈
自然语言示例:
"列出production-1上的所有堆栈"
"使用这个compose文件部署wordpress堆栈到production-1:<内容>"
"将plex部署到media-server,DB_PASSWORD=secret123"
"启动production-1上的wordpress堆栈"
"关闭staging上的old-app堆栈"
"重启media-server上的plex堆栈"
"构建staging上的开发堆栈"
"发现production-1上的compose文件"
"显示production-1上wordpress堆栈的日志"
"实时流媒体media-server上plex堆栈的日志"
"显示staging上api-stack最后200行日志"
"将wordpress从old-server迁移到new-server"
"执行server1到server2的plex干跑迁移"
"迁移数据库堆栈并在源处删除"
Docker Manager MCP使用综合动作-参数模式而不是27个独立工具。这种架构选择提供了:
Docker管理需要复杂的多步骤操作:
不同的操作需要不同的方法:
更多技术细节,请参阅docs/consolidated-action-pattern.md
🚀 高级迁移特性:
传输方法:
增强的安全特性:
skip_stop_source: true——不推荐)# WordPress部署的compose_content
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: secret
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
使用:"将wordpress堆栈部署到production-1,使用此compose文件"
只需询问你的AI助手:
当出现问题时,只需描述问题:
完美适用于硬件升级、负载均衡或迁移到更快的存储:
测试迁移(干跑):
"执行wordpress从old-server到new-server的干跑迁移"
Rsync迁移(通用兼容性):
迁移智能处理:
Docker Manager MCP的魅力在于你不需要配置任何东西。它会自动:
但如果你想自定义:
创建~/.docker-mcp/config/hosts.yml:
hosts:
# 生产Docker主机
production-server:
hostname: 192.168.1.100
user: myuser
description: "生产Docker服务器"
compose_path: /opt/compose # 存储compose文件的位置
appdata_path: /opt/appdata # 容器数据目录
# 预发布Docker主机
staging-server:
hostname: 192.168.1.101
user: myuser
description: "预发布Docker服务器"
compose_path: /opt/compose # 存储compose文件的位置
appdata_path: /opt/appdata # 容器数据目录
FASTMCP_PORT=8080 # 更改端口
LOG_LEVEL=DEBUG # 更详细的日志记录
FASTMCP_DATA_DIR=/var/lib/docker-mcp/data # 持久化OAuth令牌及运行时数据
DOCKER_MCP_DATA_DIR=/var/lib/docker-mcp/data # 工具期望的DOCKER_MCP_*别名
# OAuth身份验证(可选但推荐)
FASTMCP_ENABLE_OAUTH=true # 启用OAuth支持(默认关闭)
FASTMCP_SERVER_AUTH=fastmcp.auth.GoogleProvider # 选择Google OAuth提供者
FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID=your-client-id # Google OAuth客户端ID
FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET=your-client-secret # Google OAuth客户端密钥
FASTMCP_SERVER_AUTH_GOOGLE_REDIRECT_PATH=/auth/callback # OAuth回调路径
# 或通过指定其导入路径使用任何其他FastMCP身份验证提供者
Rsync传输特性:
性能:
已经包含!安装程序创建一切:
# 检查状态
cd ~/.docker-mcp && docker compose ps
# 查看日志
cd ~/.docker-mcp && docker compose logs
# 更新到最新
cd ~/.docker-mcp && docker compose pull && docker compose up -d
# 停止服务
cd ~/.docker-mcp && docker compose down
FASTMCP_DATA_DIR)在重启之间保留OAuth凭据和运行时状态whoami诊断工具当启用OAuth(设置FASTMCP_ENABLE_OAUTH=true并提供FASTMCP_SERVER_AUTH):
whoami工具 - 验证经过身份验证用户的标识和声明git clone https://github.com/jmagar/docker-mcp
cd docker-mcp
uv sync
uv run docker-mcp
uv run ruff format .
uv run ruff check . --fix
docker-mcp/
├── docker_mcp/ # 主应用程序
│ ├── server.py # 包含3个综合工具的FastMCP服务器
│ ├── core/ # Docker & SSH管理
│ ├── services/ # 业务逻辑
│ └── tools/ # 工具实现
├── config/ # 示例配置
├── tests/ # 综合测试套件
└── install.sh # 一键安装器
只需询问你的AI助手:
"我的my-server上80端口正在运行什么?"
"显示my-server上my-app容器的日志"
"为什么production-1上的nginx容器无法启动?"
让您的AI助手帮助排查:
"测试到我的预发布服务器的连接"
"从我的SSH配置导入所有主机"
"将我的新服务器192.1