关于 Docker MCP Server
Docker MCP Server 将 Docker Desktop for Windows 的容器、网络、镜像和日志管理能力提供给开发者及工具,支持通过 MCP 执行常见 Docker 操作。
主要功能
- 01管理容器生命周期
- 02创建和管理网络
- 03拉取、构建及推送镜像
- 04查看容器日志
适用场景
- 01检查容器信息并启停容器
- 02配置容器网络连接
- 03构建或发布镜像
- 04排查容器运行日志
MCP 相关
它是 MCP 服务,向 MCP 客户端提供 Docker Desktop 的容器、网络、镜像和日志管理工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Docker MCP Server
Docker MCP Server 是一个 Model Context Protocol(MCP) 服务,可与 Windows 上的 Docker Desktop 无缝集成,为开发者和工具提供高级自动化与交互能力。
前提条件
-
从 Docker 官方下载页面安装适用于 Windows 的 Docker Desktop。
-
在 Docker Desktop 中,前往 Settings > General,勾选
"Expose daemon on tcp://localhost:2375 without TLS"。
MCP 服务需要此设置才能与 Docker Desktop 通信。💡 提示: 在浏览器中打开
http://localhost:2375/version,即可验证端口是否已成功开放。
如果设置正确,你会看到包含 Docker 版本信息的 JSON 响应。
如果遇到问题,请查看此讨论,了解可能的解决方案: WSL 和 Windows 版 Docker:无法连接到 Docker 守护进程
安装
在 Claude Desktop 中使用
{
"mcpServers": {
"docker-mcp-stdio": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"freezeolo/docker-mcp-server"
]
}
}
}
工具
✅ 已完成 🛠️ 进行中 ❌ 计划中
容器生命周期管理 ✅
- list_containers - 获取容器列表 ✅
- get_container_info - 获取指定容器的详细信息 ✅
container_id:容器 ID(字符串,必填)
- start_container - 启动容器 ✅
container_id:容器 ID(字符串,必填)
- restart_container - 重启容器 ✅
container_id:容器 ID(字符串,必填)
- stop_container - 停止容器 ✅
container_id:容器 ID(字符串,必填)
- remove_container - 移除容器 ✅
container_id:容器 ID(字符串,必填)
- create_container - 创建新容器 ✅
imageName:镜像名称(字符串,必填)containerName:容器名称(字符串,必填)command:要运行的命令(字符串,可选)env:环境变量(字符串数组,可选)ports:端口绑定(字符串数组,可选)volumes:卷绑定(字符串数组,可选)network:网络名称(字符串,可选)restartPolicy:重启策略(字符串,可选)
网络管理 ✅
- list_networks - 列出所有网络 ✅
- get_network_info - 获取网络信息 ✅
networkId:网络 ID(字符串,必填)
- create_network - 创建新网络 ✅
networkName:网络名称(字符串,必填)driver:网络驱动程序(字符串,必填)subnet:子网 CIDR(字符串,必填)gateway:网关 IP(字符串,必填)
- connect_container_to_network - 将容器连接到网络 ✅
containerId:容器 ID(字符串,必填)networkId:网络 ID(字符串,必填)
- disconnect_container_from_network - 断开容器与网络的连接 ✅
containerId:容器 ID(字符串,必填)networkId:网络 ID(字符串,必填)
- remove_network - 移除网络 ✅
networkId:网络 ID(字符串,必填)
- get_network_containers - 获取网络中的容器 ✅
networkId:网络 ID(字符串,必填)
镜像管理 ✅
- list_images - 列出所有镜像 ✅
- pull_image - 从注册表拉取镜像 ✅
imageName:带标签的镜像名称(字符串,必需)
- push_image - 将镜像推送到注册表 ✅
imageName:带标签的镜像名称(字符串,必需)
- remove_image - 移除镜像 ✅
imageId:镜像 ID(字符串,必需)force:强制移除(布尔值,可选)
- tag_image - 为镜像添加多个标签 ✅
imageId:镜像 ID(字符串,必需)repository:仓库名称(字符串,必需)tags:标签数组(string[],必需)
- build_image - 根据 Dockerfile 构建镜像 ✅
dockerfilePath:Dockerfile 的路径(字符串,必需)repository:仓库名称(字符串,必需)tags:标签数组(string[],必需)
- get_image_details - 获取镜像详情 ✅
imageId:镜像 ID(字符串,必需)
日志管理 ✅
- get_container_logs - 获取容器日志 ✅
containerId:容器 ID(字符串,必需)follow:持续输出日志(布尔值,可选,默认值:false)stdout:显示标准输出(布尔值,可选,默认值:true)stderr:显示标准错误(布尔值,可选,默认值:true)since:显示指定时间戳之后的日志(字符串,可选)until:显示指定时间戳之前的日志(字符串,可选)tail:显示末尾的行数(整数,可选)timestamps:显示时间戳(布尔值,可选,默认值:false)
常见问题
问:如何安装此项目?
答:请按照安装部分中的步骤操作。请确保已安装所需的依赖项。
许可证
本项目采用 MIT 开源许可证。完整条款请参阅 MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。