首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
mcp-server-docker2025-05-270分享
github
一个MCP服务器,允许通过自然语言管理Docker容器,使用户能够在不自行运行命令的情况下组合、检查和调试容器。
By ckreiling
2025-05-270
github
详情内容

🐋 Docker MCP 服务器

一个通过自然语言管理 Docker 的 MCP 服务器!

🪩 它能做什么?

  • 🚀 使用自然语言编排容器
  • 🔍 检查和调试运行中的容器
  • 📀 使用 Docker 卷管理持久化数据

❓ 适合谁使用?

  • 服务器管理员:连接远程 Docker 引擎,例如管理面向公众的网站。
  • 爱好者:在本地运行容器并尝试支持 Docker 的开源应用
  • AI 爱好者:探索大语言模型的能力极限!

演示

一个快速演示,展示如何使用自然语言部署 WordPress:

https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3

🏎️ 快速开始

安装

Claude 桌面版

在 MacOS 上:~/Library/Application\ Support/Claude/claude_desktop_config.json

在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json

使用 uv 从 PyPi 安装

如果你还没有安装 uv,请按照你系统的安装说明操作:
链接

然后将以下内容添加到你的 MCP 服务器文件中:

"mcpServers": {
  "mcp-server-docker": {
    "command": "uvx",
    "args": [
      "mcp-server-docker"
    ]
  }
}
使用 Docker 安装

纯粹为了方便,服务器可以在 Docker 容器中运行。

克隆此仓库后,构建 Docker 镜像:

docker build -t mcp-server-docker .

然后将以下内容添加到你的 MCP 服务器文件中:

"mcpServers": {
  "mcp-server-docker": {
    "command": "docker",
    "args": [
      "run",
      "-i",
      "--rm",
      "-v",
      "/var/run/docker.sock:/var/run/docker.sock",
      "mcp-server-docker:latest"
    ]
  }
}

注意我们挂载了 Docker 套接字作为一个卷;这确保 MCP 服务器可以连接并控制本地 Docker 守护进程。

📝 提示

🎻 docker_compose

使用自然语言编排容器。查看上方 的演示。

提供一个项目名称和所需容器的描述,让大语言模型完成其余工作。

此提示指示大语言模型进入 计划+应用 循环。你与大语言模型的交互将包括以下步骤:

  1. 你给大语言模型指令要启动哪些容器
  2. 大语言模型计算一个简洁的自然语言计划并呈现给你
  3. 你可以:
    • 应用该计划
    • 向大语言模型提供反馈,然后大语言模型重新计算计划

示例

  • 名称:nginx,容器:"部署一个 nginx 容器并将其暴露在 9000 端口"
  • 名称:wordpress,容器:"部署一个 WordPress 容器和一个支持 MySQL 容器,将 WordPress 暴露在 9000 端口"

继续项目

当使用此提示开始新聊天时,大语言模型将接收使用给定项目 名称 创建的任何容器、卷和网络的状态。

这主要用于清理,以防你丢失了负责许多容器的聊天记录。

📔 资源

服务器为每个容器实现了几个资源:

  • 统计信息:容器的 CPU、内存等
  • 日志:从容器中获取一些日志

🔨 工具

容器

  • list_containers
  • create_container
  • run_container
  • recreate_container
  • start_container
  • fetch_container_logs
  • stop_container
  • remove_container

镜像

  • list_images
  • pull_image
  • push_image
  • build_image
  • remove_image

网络

  • list_networks
  • create_network
  • remove_network

  • list_volumes
  • create_volume
  • remove_volume

🚧 免责声明

敏感数据

不要配置包含敏感数据的容器。 这包括 API 密钥、数据库密码等。

除非大语言模型运行在你的本地机器上,否则与大语言模型交换的任何敏感数据本质上都是不安全的。

如果你有兴趣安全地向容器传递机密信息,请在此仓库中提交一个包含你使用场景的问题。

审查创建的容器

小心审查大语言模型创建的容器。Docker 不是一个安全的沙箱,因此 MCP 服务器可能通过 Docker 影响主机。

出于安全原因,此 MCP 服务器不支持敏感的 Docker 选项,如 --privileged--cap-add/--cap-drop。如果你对这些功能感兴趣,请在此仓库中提交一个包含你使用场景的问题。

🛠️ 配置

此服务器使用 Python Docker SDK 的 from_env 方法。有关配置详情,请参阅
文档

通过 SSH 连接到 Docker

此 MCP 服务器可以通过 SSH 连接到远程 Docker 守护进程。

只需在 MCP 服务器定义中设置一个 ssh:// 主机 URL:

"mcpServers": {
  "mcp-server-docker": {
    "command": "uvx",
    "args": [
      "mcp-server-docker"
    ],
    "env": {
      "DOCKER_HOST": "ssh://myusername@myhost.example.com"
    }
  }
}

💻 开发

建议使用 Devbox 配置你的开发环境。

查看 devbox.json 以获取有用的开发命令。

设置好 devbox 后,你可以配置你的 Claude MCP 配置以使用它:

  "docker": {
    "command": "/path/to/repo/.devbox/nix/profile/default/bin/uv",
    "args": [
      "--directory",
      "/path/to/repo/",
      "run",
      "mcp-server-docker"
    ]
  },
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档