Dokemon API参考手册:完整的REST API接口文档和使用示例
【免费下载链接】dokemonDocker Container Management GUI项目地址: https://gitcode.com/gh_mirrors/do/dokemon
Dokemon是一个功能强大的Docker容器管理GUI工具,提供了完整的REST API接口,让开发者可以通过编程方式管理多个服务器的Docker容器。本文将详细介绍Dokemon的API接口文档和使用方法,帮助您快速上手使用Dokemon API进行容器管理。😊
📋 API基础信息
API版本和认证
Dokemon API采用RESTful设计风格,当前版本为v1。所有API端点都位于/api/v1/路径下。要使用API,您需要先通过认证获取访问令牌。
认证端点:
POST /api/v1/users/login- 用户登录POST /api/v1/users/logout- 用户登出
健康检查:
GET /healthz- 服务健康检查
认证流程示例
# 用户登录获取认证 curl -X POST http://your-dokemon-server:9090/api/v1/users/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"your_password"}' # 响应示例 { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": 1, "username": "admin" } } # 后续请求需要携带认证头 curl -X GET http://your-dokemon-server:9090/api/v1/nodes \ -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."🚀 核心API接口详解
1. 节点管理(Nodes)
节点代表您要管理的Docker服务器。Dokemon支持管理多个服务器节点,让您可以从一个控制台管理所有容器。
主要接口:
GET /api/v1/nodes- 获取节点列表POST /api/v1/nodes- 创建新节点GET /api/v1/nodes/:id- 获取节点详情PUT /api/v1/nodes/:id- 更新节点信息DELETE /api/v1/nodes/:id- 删除节点
创建节点示例:
curl -X POST http://your-dokemon-server:9090/api/v1/nodes \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "production-server", "baseUrl": "http://192.168.1.100:2375", "token": "node-registration-token" }'2. 容器管理(Containers)
通过Dokemon API,您可以轻松管理Docker容器的完整生命周期。
容器操作接口:
GET /api/v1/nodes/:nodeId/containers- 获取容器列表POST /api/v1/nodes/:nodeId/containers/start- 启动容器POST /api/v1/nodes/:nodeId/containers/stop- 停止容器POST /api/v1/nodes/:nodeId/containers/restart- 重启容器POST /api/v1/nodes/:nodeId/containers/remove- 删除容器GET /api/v1/nodes/:nodeId/containers/:id/logs- 查看容器日志GET /api/v1/nodes/:nodeId/containers/:id/terminal- 打开容器终端
获取容器列表示例:
curl -X GET "http://your-dokemon-server:9090/api/v1/nodes/1/containers" \ -H "Authorization: Bearer YOUR_TOKEN"3. 镜像管理(Images)
Dokemon API提供了完整的Docker镜像管理功能。
镜像操作接口:
GET /api/v1/nodes/:nodeId/images- 获取镜像列表POST /api/v1/nodes/:nodeId/images/remove- 删除镜像POST /api/v1/nodes/:nodeId/images/prune- 清理未使用镜像
4. 卷管理(Volumes)
管理Docker数据卷,确保数据持久化存储。
卷操作接口:
GET /api/v1/nodes/:nodeId/volumes- 获取卷列表POST /api/v1/nodes/:nodeId/volumes/remove- 删除卷POST /api/v1/nodes/:nodeId/volumes/prune- 清理未使用卷
5. 网络管理(Networks)
管理Docker网络配置,实现容器间的网络通信。
网络操作接口:
GET /api/v1/nodes/:nodeId/networks- 获取网络列表POST /api/v1/nodes/:nodeId/networks/remove- 删除网络POST /api/v1/nodes/:nodeId/networks/prune- 清理未使用网络
🐳 Docker Compose项目管理
6. Compose项目部署
Dokemon支持从多个来源部署Docker Compose项目,包括本地文件系统、GitHub仓库和项目库。
Compose项目接口:
GET /api/v1/composelibrary- 获取Compose项目列表POST /api/v1/nodes/:nodeId/compose/create/github- 从GitHub创建Compose项目POST /api/v1/nodes/:nodeId/compose/create/local- 从本地创建Compose项目POST /api/v1/nodes/:nodeId/compose/create/library- 从项目库添加Compose项目
从GitHub部署示例:
curl -X POST "http://your-dokemon-server:9090/api/v1/nodes/1/compose/create/github" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "wordpress-site", "repositoryUrl": "https://github.com/username/repo", "composeFilePath": "docker-compose.yml", "branch": "main" }'7. Compose项目操作
部署后的Compose项目可以进行各种操作:
项目操作接口:
GET /api/v1/nodes/:nodeId/compose/:id/containers- 获取项目容器列表GET /api/v1/nodes/:nodeId/compose/:id/logs- 查看项目日志GET /api/v1/nodes/:nodeId/compose/:id/deploy- 部署项目GET /api/v1/nodes/:nodeId/compose/:id/pull- 拉取项目镜像GET /api/v1/nodes/:nodeId/compose/:id/up- 启动项目GET /api/v1/nodes/:nodeId/compose/:id/down- 停止项目
🔧 环境变量和配置管理
8. 环境变量管理
Dokemon提供了强大的环境变量管理功能,支持为不同环境配置不同的变量值。
环境管理接口:
GET /api/v1/environments- 获取环境列表POST /api/v1/environments- 创建环境PUT /api/v1/environments/:id- 更新环境DELETE /api/v1/environments/:id- 删除环境
变量管理接口:
GET /api/v1/variables- 获取变量列表POST /api/v1/variables- 创建变量PUT /api/v1/variables/:id- 更新变量PUT /api/v1/variables/:variableId/values/:environmentId- 设置变量值
9. 凭据管理
安全地管理访问凭据,用于访问私有仓库等资源。
凭据管理接口:
GET /api/v1/credentials- 获取凭据列表POST /api/v1/credentials- 创建凭据PUT /api/v1/credentials/:id- 更新凭据详情PUT /api/v1/credentials/:id/secret- 更新凭据密钥DELETE /api/v1/credentials/:id- 删除凭据
🌐 WebSocket实时通信
Dokemon还提供了WebSocket接口,用于实时通信和任务执行状态更新:
// WebSocket连接示例 const ws = new WebSocket('ws://your-dokemon-server:9090/ws'); ws.onopen = () => { console.log('WebSocket连接已建立'); // 可以发送任务执行请求 }; ws.onmessage = (event) => { const data = JSON.parse(event.data); console.log('收到消息:', data); // 处理任务执行状态更新 }; ws.onclose = () => { console.log('WebSocket连接已关闭'); };📊 错误处理
所有API接口都遵循标准的HTTP状态码:
| 状态码 | 含义 | 说明 |
|---|---|---|
| 200 | OK | 请求成功 |
| 201 | Created | 资源创建成功 |
| 400 | Bad Request | 请求参数错误 |
| 401 | Unauthorized | 未授权访问 |
| 404 | Not Found | 资源不存在 |
| 422 | Unprocessable Entity | 请求无法处理 |
错误响应示例:
{ "error": "节点名称已存在", "code": "NODE_NAME_EXISTS" }🔍 实用工具接口
10. 唯一性检查
Dokemon提供了多个唯一性检查接口,确保资源名称的唯一性:
GET /api/v1/nodes/uniquename- 检查节点名称是否唯一GET /api/v1/environments/uniquename- 检查环境名称是否唯一GET /api/v1/variables/uniquename- 检查变量名称是否唯一GET /api/v1/credentials/uniquename- 检查凭据名称是否唯一
11. 设置管理
系统设置管理接口:
GET /api/v1/settings/:id- 获取设置PUT /api/v1/settings/:id- 更新设置
🎯 最佳实践
认证和安全
- 使用HTTPS:在生产环境中始终使用HTTPS
- 令牌管理:定期更新访问令牌
- 最小权限原则:为不同用户分配适当的权限
性能优化
- 批量操作:尽量减少API调用次数
- 连接复用:使用连接池管理HTTP连接
- 错误重试:实现适当的错误重试机制
监控和日志
- 记录所有API调用:用于审计和故障排除
- 监控API响应时间:确保系统性能
- 设置告警:对异常API响应进行告警
📝 总结
Dokemon API提供了一个完整、强大的Docker容器管理解决方案,让您可以通过编程方式管理多个服务器的Docker环境。无论是简单的容器操作,还是复杂的Compose项目部署,Dokemon API都能满足您的需求。
通过本文的详细指南,您应该能够:
- 理解Dokemon API的整体架构
- 掌握核心API接口的使用方法
- 实现自动化容器管理流程
- 构建基于Dokemon的CI/CD流水线
Dokemon的API设计简洁明了,遵循RESTful最佳实践,是构建现代化容器管理系统的理想选择。🚀
【免费下载链接】dokemonDocker Container Management GUI项目地址: https://gitcode.com/gh_mirrors/do/dokemon
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考