78 lines
2.1 KiB
Markdown
78 lines
2.1 KiB
Markdown
# 🐳 Docker Web Manager
|
|
|
|
轻量级 Docker Web 管理器,适合 NAS 环境使用。
|
|
|
|
## 功能特性
|
|
|
|
- **容器管理**: 启动 / 停止 / 重启 / 删除容器
|
|
- **日志查看**: 实时查看容器日志,支持时间戳、行数选择
|
|
- **资源监控**: CPU、内存、网络使用率
|
|
- **Docker Compose**: 项目发现、启动/停止/重启、在线编辑
|
|
- **自动刷新**: 容器列表自动同步 Docker 状态
|
|
- **深色主题**: 专为 NAS 管理界面设计
|
|
|
|
## 快速部署
|
|
|
|
```bash
|
|
# 构建并启动
|
|
cd /home/zwbpc/docker-manager
|
|
docker-compose up -d
|
|
|
|
# 查看日志
|
|
docker-compose logs -f
|
|
|
|
# 停止
|
|
docker-compose down
|
|
```
|
|
|
|
访问: **http://your-nas:8080**
|
|
|
|
## 目录结构
|
|
|
|
```
|
|
docker-manager/
|
|
├── backend/ # FastAPI 后端
|
|
│ ├── main.py # API 入口
|
|
│ ├── docker_client.py # Docker Socket 封装
|
|
│ ├── requirements.txt
|
|
│ └── Dockerfile
|
|
├── frontend/
|
|
│ └── dist/
|
|
│ └── index.html # Vue SPA 单文件
|
|
├── docker-compose.yml # 一键部署
|
|
└── README.md
|
|
```
|
|
|
|
## Compose 文件扫描路径
|
|
|
|
默认扫描 `/data/compose`,修改 `docker-compose.yml` 中的挂载路径即可:
|
|
|
|
```yaml
|
|
- /your/path:/data/compose:ro
|
|
```
|
|
|
|
## 技术栈
|
|
|
|
- **后端**: FastAPI + Python `docker` 库
|
|
- **前端**: Vue 3 (CDN) + 原生 JavaScript
|
|
- **通信**: Docker Socket API
|
|
- **部署**: Docker + Docker Compose
|
|
|
|
## API 端点
|
|
|
|
| 方法 | 路径 | 说明 |
|
|
|------|------|------|
|
|
| GET | `/api/containers` | 列出所有容器 |
|
|
| POST | `/api/containers/{id}/start` | 启动容器 |
|
|
| POST | `/api/containers/{id}/stop` | 停止容器 |
|
|
| POST | `/api/containers/{id}/restart` | 重启容器 |
|
|
| DELETE | `/api/containers/{id}` | 删除容器 |
|
|
| GET | `/api/containers/{id}/logs` | 获取日志 |
|
|
| GET | `/api/containers/{id}/stats` | 资源使用 |
|
|
| GET | `/api/compose/discover?path=` | 发现 Compose |
|
|
| POST | `/api/compose/up` | 启动项目 |
|
|
| POST | `/api/compose/down` | 停止项目 |
|
|
| POST | `/api/compose/restart` | 重启项目 |
|
|
| GET | `/api/compose/file?path=` | 读取文件 |
|
|
| POST | `/api/compose/file?path=` | 保存文件 |
|