Docker Hub MCP 伺服器

Docker Hub MCP 伺服器是一個模型上下文協議(MCP)伺服器,它與 Docker Hub API 介面,使豐富的映象元資料可供 LLM 訪問,從而實現智慧內容發現和倉庫管理。使用容器,尤其是在 AI 和 LLM 驅動的工作流程中進行開發的開發人員,經常面臨 Docker Hub 映象的廣闊領域中上下文不足的問題。因此,LLM 難以推薦正確的映象,開發人員則花費時間手動搜尋而不是進行構建。

關鍵特性

  • 高階 LLM 上下文:Docker 的 MCP 伺服器為 LLM 提供詳細、結構化的 Docker Hub 映象上下文,為開發人員提供更智慧、更相關的建議,無論他們是選擇基礎映象還是自動化 CI/CD 工作流程。
  • 自然語言映象發現:開發人員可以使用自然語言查詢正確的容器映象,無需記住標籤或倉庫名稱。只需描述您的需求,Docker Hub 將返回符合您意圖的映象。
  • 簡化倉庫管理:Hub MCP 伺服器使代理能夠透過自然語言管理倉庫,快速輕鬆地獲取映象詳細資訊、檢視統計資訊、搜尋內容和執行關鍵操作。

安裝 Docker Hub MCP 伺服器

  1. 在 **MCP 工具包**選單中,選擇**目錄**選項卡並搜尋 **Docker Hub**,然後選擇加號圖示以新增 Docker Hub MCP 伺服器。

  2. 在伺服器的**配置**選項卡中,插入您的 Docker Hub 使用者名稱和個人訪問令牌(PAT)。

  3. 在 MCP 工具包的**客戶端**選項卡中,確保 Gordon 已連線。

  4. 在**諮詢 Gordon**選單中,您現在可以根據 Docker Hub MCP 伺服器提供的工具傳送與您的 Docker Hub 賬戶相關的請求。要測試它,請諮詢 Gordon

    What repositories are in my namespace?
提示

預設情況下,Gordon 客戶端已啟用,這意味著 Gordon 可以自動與您的 MCP 伺服器進行互動。

使用 Claude Desktop 作為客戶端

  1. 將 Docker Hub MCP 伺服器配置新增到您的 claude_desktop_config.json

    {
      "mcpServers": {
        "docker-hub": {
          "command": "node",
          "args": ["/FULL/PATH/TO/YOUR/docker-hub-mcp-server/dist/index.js", "--transport=stdio"]
        }
      }
    }

    其中

    • /FULL/PATH/TO/YOUR/docker-hub-mcp-server 是您克隆倉庫的完整路徑
    {
      "mcpServers": {
        "docker-hub": {
          "command": "node",
          "args": ["/FULL/PATH/TO/YOUR/docker-hub-mcp-server/dist/index.js", "--transport=stdio", "--username=YOUR_DOCKER_HUB_USERNAME"],
          "env": {
            "HUB_PAT_TOKEN": "YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN"
          }
        }
      }
    }

    其中

    • YOUR_DOCKER_HUB_USERNAME 是您的 Docker Hub 使用者名稱。
    • YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN 是 Docker Hub 個人訪問令牌
    • /FULL/PATH/TO/YOUR/docker-hub-mcp-server 是您克隆倉庫的完整路徑
  2. 儲存配置檔案並完全重啟 Claude Desktop 以使更改生效。

在 Visual Studio Code 中使用

  1. 將 Docker Hub MCP 伺服器配置新增到 Visual Studio Code 中的使用者設定 (JSON) 檔案。您可以透過開啟`命令面板`並輸入`首選項:開啟使用者設定 (JSON)`來完成此操作。

    {
      "mcpServers": {
        "docker-hub": {
          "command": "node",
          "args": ["/FULL/PATH/TO/YOUR/docker-hub-mcp-server/dist/index.js", "--transport=stdio"]
        }
      }
    }

    其中

    • /FULL/PATH/TO/YOUR/docker-hub-mcp-server 是您克隆倉庫的完整路徑
    {
      "mcpServers": {
        "docker-hub": {
          "command": "node",
          "args": ["/FULL/PATH/TO/YOUR/docker-hub-mcp-server/dist/index.js", "--transport=stdio"],
          "env": {
            "HUB_USERNAME": "YOUR_DOCKER_HUB_USERNAME",
            "HUB_PAT_TOKEN": "YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN"
          }
        }
      }
    }

    其中

    • YOUR_DOCKER_HUB_USERNAME 是您的 Docker Hub 使用者名稱。
    • YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN 是 Docker Hub 個人訪問令牌
    • /FULL/PATH/TO/YOUR/docker-hub-mcp-server 是您克隆倉庫的完整路徑
  2. 開啟`命令面板`並輸入`MCP: 列出伺服器`。

  3. 選擇 docker-hub 並選擇 啟動伺服器

使用其他客戶端

要將 Docker Hub MCP 伺服器整合到您自己的開發環境中,請參閱 hub-mcp GitHub 倉庫上的原始碼和安裝說明。

使用示例

本節提供了使用 Docker Hub 工具進行常見操作的面向任務的示例。

查詢映象

# Search for official images
$ docker ai "Search for official nginx images on Docker Hub"

# Search for lightweight images to reduce deployment size and improve performance
$ docker ai "Search for minimal Node.js images with small footprint"

# Get the most recent tag of a base image
$ docker ai "Show me the latest tag details for go"

# Find a production-ready database with enterprise features and reliability
$ docker ai "Search for production ready database images"

# Compare Ubuntu versions to choose the right one for my project
$ docker ai "Help me find the right Ubuntu version for my project"

倉庫管理

# Create a repository
$ docker ai "Create a repository in my namespace"

# List all repositories in my namespace
$ docker ai "List all repositories in my namespace"

# Find the largest repository in my namespace
$ docker ai "Which of my repositories takes up the most space?"

# Find repositories that haven't been updated recently
$ docker ai "Which of my repositories haven't had any pushes in the last 60 days?"

# Find which repositories are currently active and being used
$ docker ai "Show me my most recently updated repositories"

# Get details about a repository
$ docker ai "Show me information about my '<repository-name>' repository"

拉取/推送映象

# Pull latest PostgreSQL version
$ docker ai "Pull the latest postgres image"

# Push image to your Docker Hub repository
$ docker ai "Push my <image-name> to my <repository-name> repository"

標籤管理

# List all tags for a repository
$ $ docker ai "Show me all tags for my '<repository-name>' repository"

# Find the most recently pushed tag
$ docker ai "What's the most recent tag pushed to my '<repository-name>' repository?"

# List tags with architecture filtering
$ docker ai "List tags for in the '<repository-name>' repository that support amd64 architecture"

# Get detailed information about a specific tag
$ docker ai "Show me details about the '<tag-name>' tag in the '<repository-name>' repository"

# Check if a specific tag exists
$ docker ai "Check if version 'v1.2.0' exists for my 'my-web-app' repository"

Docker 安全強化映象

# List available hardened images
$ docker ai "What is the most secure image I can use to run a node.js application?"

# Convert Dockerfile to use a hardened image
$ docker ai "Can you help me update my Dockerfile to use a docker hardened image instead of the current one"
注意

訪問 Docker 強化映象需要訂閱。如果您有興趣使用 Docker 強化映象,請訪問 Docker 強化映象

參考

本節提供了 Docker Hub MCP 伺服器中所有可用工具的完整列表。

Docker Hub MCP 伺服器工具

用於與您的 Docker 倉庫互動並在 Docker Hub 上發現內容的工具。

名稱描述
check-repository檢查倉庫
check-repository-tag檢查倉庫標籤
check-repository-tags檢查倉庫標籤
create-repository建立新倉庫
docker-hardened-images列出指定名稱空間中可用的 Docker 強化映象
get-namespaces獲取使用者的組織/名稱空間
get-repository-dockerfile獲取倉庫的 Dockerfile
get-repository-info獲取倉庫資訊
list-repositories-by-namespace列出名稱空間下的倉庫
list-repository-tags列出倉庫標籤
read-repository-tag讀取倉庫標籤
搜尋在 Docker Hub 上搜索內容
set-repository-dockerfile設定倉庫的 Dockerfile
update-repository-info更新倉庫資訊