166 lines
4.0 KiB
Markdown
166 lines
4.0 KiB
Markdown
# Docker Hub MCP Server
|
||
|
||
Docker Hub MCP Server 提供通过模型上下文协议(MCP)与 Docker Hub 集成的能力,实现镜像搜索、查询和管理功能。
|
||
|
||
## 功能特性
|
||
|
||
- 🔍 **镜像搜索** - 在 Docker Hub 上搜索镜像
|
||
- 📊 **镜像信息** - 获取详细的镜像信息
|
||
- 🏷️ **标签管理** - 查看镜像标签
|
||
- 📈 **统计信息** - 查看下载量和星标数
|
||
- 👤 **用户管理** - 管理 Docker Hub 账户
|
||
- 📝 **仓库信息** - 仓库信息查询
|
||
|
||
## 环境变量
|
||
|
||
| 变量 | 默认值 | 说明 |
|
||
| ----------------------------- | -------- | ----------------------------------- |
|
||
| `DOCKERHUB_MCP_VERSION` | `latest` | Docker 镜像版本 |
|
||
| `DOCKERHUB_MCP_PORT_OVERRIDE` | `8000` | 服务端口 |
|
||
| `DOCKERHUB_USERNAME` | - | Docker Hub 用户名(可选,用于认证) |
|
||
| `DOCKERHUB_PASSWORD` | - | Docker Hub 密码(可选,用于认证) |
|
||
| `DOCKERHUB_TOKEN` | - | Docker Hub 访问令牌(推荐用于认证) |
|
||
| `TZ` | `UTC` | 时区 |
|
||
|
||
## 认证方式
|
||
|
||
该服务支持三种认证方式:
|
||
|
||
### 1. 无认证(公开访问)
|
||
|
||
仅能访问公开镜像和信息。
|
||
|
||
### 2. 用户名和密码认证
|
||
|
||
```env
|
||
DOCKERHUB_USERNAME=your_username
|
||
DOCKERHUB_PASSWORD=your_password
|
||
```
|
||
|
||
### 3. 访问令牌认证(推荐)
|
||
|
||
```env
|
||
DOCKERHUB_TOKEN=your_access_token
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 1. 配置环境
|
||
|
||
创建 `.env` 文件:
|
||
|
||
#### 无认证模式(仅公开访问)
|
||
|
||
```env
|
||
DOCKERHUB_MCP_VERSION=latest
|
||
DOCKERHUB_MCP_PORT_OVERRIDE=8000
|
||
TZ=Asia/Shanghai
|
||
```
|
||
|
||
#### 令牌认证模式(推荐)
|
||
|
||
```env
|
||
DOCKERHUB_MCP_VERSION=latest
|
||
DOCKERHUB_MCP_PORT_OVERRIDE=8000
|
||
DOCKERHUB_TOKEN=dckr_pat_your_token_here
|
||
TZ=Asia/Shanghai
|
||
```
|
||
|
||
### 2. 获取 Docker Hub 访问令牌
|
||
|
||
1. 登录 [Docker Hub](https://hub.docker.com/)
|
||
2. 点击头像 → **Account Settings**
|
||
3. 导航到 **Security** → **Access Tokens**
|
||
4. 点击 **New Access Token**
|
||
5. 设置权限(推荐只读权限)
|
||
6. 生成并复制令牌
|
||
|
||
### 3. 启动服务
|
||
|
||
```bash
|
||
docker compose up -d
|
||
```
|
||
|
||
### 4. 验证服务
|
||
|
||
```bash
|
||
curl http://localhost:8000/health
|
||
```
|
||
|
||
## 资源需求
|
||
|
||
- 最小内存:128MB
|
||
- 推荐内存:512MB
|
||
- CPU:0.25-1.0 核心
|
||
|
||
## 常见使用场景
|
||
|
||
1. **镜像搜索** - 搜索适合项目的 Docker 镜像
|
||
2. **版本查询** - 查看镜像的所有可用标签
|
||
3. **依赖分析** - 分析镜像的基础镜像和依赖
|
||
4. **安全检查** - 查看镜像的安全扫描报告
|
||
5. **下载统计** - 查看镜像的受欢迎程度
|
||
|
||
## API 功能
|
||
|
||
该 MCP 服务器提供以下主要功能:
|
||
|
||
- ✅ 搜索公开和私有镜像
|
||
- ✅ 获取镜像标签列表
|
||
- ✅ 查看镜像详细信息
|
||
- ✅ 查询仓库统计信息
|
||
- ✅ 检查镜像更新
|
||
- ✅ 查看 Dockerfiles
|
||
|
||
## 权限类型
|
||
|
||
### 只读令牌权限
|
||
|
||
推荐用于大多数查询操作:
|
||
|
||
- ✅ 搜索镜像
|
||
- ✅ 查看镜像信息
|
||
- ✅ 获取标签列表
|
||
- ❌ 推送镜像
|
||
- ❌ 删除镜像
|
||
|
||
### 读写令牌权限
|
||
|
||
用于管理操作:
|
||
|
||
- ✅ 所有只读操作
|
||
- ✅ 推送镜像
|
||
- ✅ 删除镜像
|
||
- ✅ 更新仓库设置
|
||
|
||
## 安全建议
|
||
|
||
⚠️ **重要**:
|
||
|
||
1. **优先使用访问令牌**:比密码更安全
|
||
2. **最小权限原则**:只授予必要的权限
|
||
3. **定期轮换**:定期更新访问令牌
|
||
4. **保护环境变量**:不要将 `.env` 提交到版本控制
|
||
5. **监控访问**:定期检查令牌使用情况
|
||
6. **使用只读令牌**:除非需要写权限
|
||
|
||
## 速率限制
|
||
|
||
Docker Hub 有 API 速率限制:
|
||
|
||
- **未认证**:100 次请求 / 6 小时
|
||
- **免费账户**:200 次请求 / 6 小时
|
||
- **付费账户**:更高的速率限制
|
||
|
||
建议使用认证以获得更高的速率限制。
|
||
|
||
## 参考链接
|
||
|
||
- [Docker Hub 官方网站](https://hub.docker.com/)
|
||
- [Docker Hub API 文档](https://docs.docker.com/docker-hub/api/latest/)
|
||
- [MCP 文档](https://modelcontextprotocol.io/)
|
||
|
||
## 许可证
|
||
|
||
MIT License
|