Share feedback
Answers are generated based on the documentation.

使用 Claude Code 和 Docker MCP Toolkit 生成 Docker Compose 文件

本指南介绍了如何使用 Claude Code 与 Docker MCP Toolkit,使 Claude 能够实时搜索 Docker Hub,并从自然语言生成完整的 docker-compose.yaml 文件。

无需手动编写 YAML 或查找镜像标签,您只需描述一次您的堆栈——Claude 使用模型上下文协议 (MCP) 查询 Docker Hub 并构建一个生产就绪的 Compose 文件。

在本指南中,您将学习如何:

  • 在 Docker Desktop 中启用 Docker MCP Toolkit
  • 添加 Docker Hub MCP 服务器
  • 将 Claude Code 连接到 MCP 网关(GUI 或 CLI)
  • 在 Claude 内部验证 MCP 连接
  • 要求 Claude 为 Node.js + PostgreSQL 应用生成并保存 Compose 文件
  • 使用 docker compose up 立即部署

使用 Claude Code 和 Docker MCP Toolkit 从自然语言生成 Docker Compose 文件

  • 设置:启用 MCP Toolkit → 添加 Docker Hub MCP 服务器 → 连接 Claude Code
  • 使用 Claude:用简单的英语描述您的堆栈
  • 自动化:Claude 通过 MCP 查询 Docker Hub 并构建完整的 docker-compose.yaml
  • 部署:运行 docker compose up → Node.js + PostgreSQL 在 localhost:3000 上运行
  • 优势:无需编写 YAML。无需搜索镜像。描述一次 → Claude 为您构建。

预计时间:约 15 分钟


1. 您要构建的内容

目标很简单:使用 Claude Code 与 Docker MCP Toolkit 搜索 Docker Hub 镜像,并为 Node.js 和 PostgreSQL 设置生成一个完整的 Docker Compose 文件。

模型上下文协议 (MCP) 桥接了 Claude Code 和 Docker Desktop,使 Claude 能够实时访问 Docker 的工具。您无需在 Docker、终端命令和 YAML 编辑器之间切换,只需描述一次您的需求,Claude 就会处理基础设施细节。

为什么这很重要:这种模式可以扩展到复杂的多服务设置、数据库迁移、网络、安全策略——全部通过对话式提示完成。


2. 先决条件

请确保您已安装:

  • Docker Desktop
  • 启用支持 MCP Toolkit 的 Docker Desktop 更新
  • 已安装 Claude Code

3. 安装 Docker Hub MCP 服务器

  1. 打开 Docker Desktop
  2. 选择 MCP Toolkit
  3. 转到 Catalog 选项卡
  4. 搜索 Docker Hub
  5. 选择 Docker Hub MCP 服务器
  6. 添加 MCP 服务器,然后打开 Configuration 选项卡
  7. 输入您的 Docker Hub 用户名
  8. 创建一个只读的个人访问令牌,并在 Secrets 下输入您的访问令牌
  9. 保存配置
Docker Hub
Docker Hub

公共镜像无需凭据即可工作。对于私有仓库,您可以稍后添加您的 Docker Hub 用户名和令牌。

Docker Hub Secrets
Docker Hub Secrets

4. 将 Claude Code 连接到 Docker MCP Toolkit

您可以通过 Docker Desktop 或使用 CLI 进行连接。

选项 A. 使用 Docker Desktop 连接

  1. 打开 MCP Toolkit
  2. 转到 Clients 选项卡
  3. 找到 Claude Code
  4. 选择 Connect
Docker Connection

选项 B. 使用 CLI 连接

$ claude mcp add MCP_DOCKER -s user -- docker mcp gateway run

5. 在 Claude Code 内部验证 MCP 服务器

  1. 导航到您的项目文件夹:
$ cd /path/to/project
  1. 启动 Claude Code:
$ claude
  1. 在输入框中,输入:
/mcp

您现在应该看到:

  • MCP 网关(例如 MCP_DOCKER
  • Docker Hub MCP 服务器提供的工具
mcp-docker

如果没有,请重启 Claude Code 或检查 Docker Desktop 以确认连接。


6. 创建一个基本的 Node.js 应用

当 Claude Code 可以检查真实项目时,它会生成更准确的 Compose 文件。现在设置应用程序代码,以便代理稍后可以绑定挂载它。

在项目文件夹内,创建一个名为 app 的文件夹:

$ mkdir app
$ cd app
$ npm init -y
$ npm install express

创建 index.js

const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("Node.js, Docker, and MCP Toolkit are working together!");
});

app.listen(3000, () => {
  console.log("Server running on port 3000");
});

package.json 中添加启动脚本:

"scripts": {
  "start": "node index.js"
}

应用准备就绪后,返回项目根目录(cd ..)。


7. 要求 Claude Code 设计您的 Docker Compose 堆栈

将以下消息粘贴到 Claude Code 中:

使用 Docker Hub MCP 服务器:

在 Docker Hub 中搜索官方 Node.js 镜像和 PostgreSQL 镜像。
选择稳定、常用的标签,例如 Node LTS 版本和最新的主要 Postgres 版本。

生成一个 Docker Compose 文件(`docker-compose.yaml`),包含:
- app:
  - 在端口 3000 上运行
  - 将现有的 ./app 目录绑定挂载到 /usr/src/app
  - 设置 /usr/src/app 为工作目录并运行 `npm install && npm start`
- db:使用命名卷在端口 5432 上运行

包括:
- Postgres 的环境变量
- 共享桥接网络
- 适当的健康检查
- 使用标签 + 索引摘要固定镜像版本

Claude 将通过 MCP 搜索镜像,检查 app 目录,并生成一个挂载并运行您本地代码的 Compose 文件。


8. 保存生成的 Docker Compose 文件

告诉 Claude:

将最终的 Docker Compose 文件(docker-compose.yaml)保存到当前项目目录中。

您应该看到类似以下内容:

services:
  app:
    image: node:<tag>
    working_dir: /usr/src/app
    volumes:
      - .:/usr/src/app
    ports:
      - "3000:3000"
    depends_on:
      - db
    networks:
      - app-net

  db:
    image: postgres:18
    environment:
      POSTGRES_USER: example
      POSTGRES_PASSWORD: example
      POSTGRES_DB: appdb
    volumes:
      - db-data:/var/lib/postgresql
    ports:
      - "5432:5432"
    networks:
      - app-net

volumes:
  db-data:

networks:
  app-net:
    driver: bridge

9. 运行 Docker Compose 堆栈

从项目根目录:

$ docker compose up

Docker 将:

  • 通过 Docker Hub MCP 拉取选定的 Node 和 Postgres 镜像
  • 创建网络和卷
  • 启动容器

打开浏览器:

http://localhost:3000
Local Host

您的 Node.js 应用现在应该正在运行。


结论

通过将 Claude Code 与 Docker MCP Toolkit、Docker Desktop 和 Docker Hub MCP 服务器结合使用,您可以用自然语言描述您的堆栈,并让 MCP 处理细节。这消除了上下文切换,取而代之的是一个由模型上下文协议集成驱动的流畅、引导式工作流程。


下一步

  • 探索 Docker MCP 目录 中提供的 220 多个 MCP 服务器
  • 将 Claude Code 连接到您的数据库、内部 API 和团队工具
  • 与您的团队共享您的 MCP 设置,以便每个人都保持一致的工作方式

开发的未来不是在不同工具之间切换,而是让工具以简单、安全、可预测的方式协同工作。Docker MCP Toolkit 将这一未来带入您的日常工作流程。


了解更多