返回市场
MCP服务器Docker

MCP服务器Docker

作者:nideil5 星标更新:2025-05-06

项目介绍

Docker MCP 服务器

Docker MCP 服务器是一个 模型上下文协议(MCP) 服务器,它提供了与 Windows 上的 Docker Desktop 的无缝集成,使开发者和工具能够实现高级自动化和交互功能。

<div align="center"> <a href="https://glama.ai/mcp/servers/@nideil/mcp-server-docker"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=3098595622,3581166595&fm=3081&app=3081&f=PNG?w=760&h=400" /> </a> </div>

预备条件

  1. 从 Docker 官方 下载页面 安装 Docker Desktop for Windows。

  2. 在 Docker Desktop 中,进入 设置 > 常规 并勾选
    “在 tcp://localhost:2375 上暴露守护进程,不使用 TLS”
    这是 MCP 服务器与 Docker Desktop 通信所必需的。

    💡 提示: 您可以通过在浏览器中打开
    http://localhost:2375/version 来验证端口是否成功暴露。如果设置正确,
    您应该会看到包含 Docker 版本信息的 JSON 响应。如果您遇到问题,请参阅此讨论以获取可能的解决方案:
    WSL 和 Docker for Windows:无法连接到 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: 标签数组(字符串数组,必填)
  • build_image - 从 Dockerfile 构建镜像 ✅
    • dockerfilePath: Dockerfile 路径(字符串,必填)
    • repository: 仓库名称(字符串,必填)
    • tags: 标签数组(字符串数组,必填)
  • get_image_details - 获取镜像详情 ✅
    • imageId: 镜像ID(字符串,必填)

日志管理 ✅

  • get_container_logs - 获取容器日志 ✅
    • containerId: 容器ID(字符串,必填)
    • follow: 跟踪日志输出(布尔值,可选,默认为false)
    • stdout: 显示标准输出(布尔值,可选,默认为true)
    • stderr: 显示标准错误(布尔值,可选,默认为true)
    • since: 显示自时间戳以来的日志(字符串,可选)
    • until: 显示直到时间戳的日志(字符串,可选)
    • tail: 从末尾显示的行数(整数,可选)
    • timestamps: 显示时间戳(布尔值,可选,默认为false)

常见问题

Q: 我该如何安装该项目?

A: 请按照 安装 部分中的步骤操作。确保您已安装所需的依赖项。

许可证

本项目根据 MIT 开源许可证的条款进行许可。请参阅 MIT 获取完整的条款。