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 伺服器
在 **MCP 工具包**選單中,選擇**目錄**選項卡並搜尋 **Docker Hub**,然後選擇加號圖示以新增 Docker Hub MCP 伺服器。
在伺服器的**配置**選項卡中,插入您的 Docker Hub 使用者名稱和個人訪問令牌(PAT)。
在 MCP 工具包的**客戶端**選項卡中,確保 Gordon 已連線。
在**諮詢 Gordon**選單中,您現在可以根據 Docker Hub MCP 伺服器提供的工具傳送與您的 Docker Hub 賬戶相關的請求。要測試它,請諮詢 Gordon
What repositories are in my namespace?
提示預設情況下,Gordon 客戶端已啟用,這意味著 Gordon 可以自動與您的 MCP 伺服器進行互動。
使用 Claude Desktop 作為客戶端
將 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
是您克隆倉庫的完整路徑
儲存配置檔案並完全重啟 Claude Desktop 以使更改生效。
在 Visual Studio Code 中使用
將 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
是您克隆倉庫的完整路徑
開啟`命令面板`並輸入`MCP: 列出伺服器`。
選擇
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 | 更新倉庫資訊 |