# docker-manager **Repository Path**: wang_zhu_ge/docker-manager ## Basic Information - **Project Name**: docker-manager - **Description**: 容器管家是一款面向 Docker 日常运维场景的桌面端多服务器管理工具。产品通过统一界面帮助用户集中查看和管理多台服务器上的系统状态、Docker 镜像、Docker 容器、日志、文件和常用运维命令,降低日常 Docker 运维操作门槛,并为关键操作提供用户身份记录和审计留痕。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 运维助手 容器管家是一个面向 Docker 日常运维场景的桌面端管理工具,聚焦“多主机统一视图 + 常用操作闭环”。项目基于 `Tauri 2 + Rust + Vue 3` 构建,提供本地登录、主机管理、系统概览、镜像管理、容器管理、SSH 终端、远程文件传输与操作审计能力,适合个人开发者、小团队运维和值班巡检场景使用。 它不是 Kubernetes 平台、PaaS 或 CMDB 的替代品。当前版本的目标,是把 Docker 主机的高频管理动作收敛到一个轻量、可本地运行的桌面应用中。 ## 项目定位 - 面向多台 Linux Docker 主机的桌面运维工具 - 面向需要统一查看资源、容器、镜像和日志的开发与运维人员 - 面向希望在本地完成账号管理、主机管理和操作留痕的小规模团队 ## 核心能力 - 本地账号体系:首次启动引导创建初始管理员,支持管理员与普通用户角色,支持用户启用、禁用与最近登录记录 - 主机管理:维护多台远程服务器,支持密码认证和私钥认证,支持连接测试、当前主机切换、默认目录和 `sudo` 配置 - 系统概览:展示主机基础信息、Docker 状态和资源使用情况,支持 CPU、内存、磁盘阈值预警,支持一键复制系统与 Docker 信息 - 镜像管理:查看镜像列表,支持拉取、导入、导出、打标签和清理操作 - 容器管理:查看容器列表和详情,支持启动、停止、重启,支持查看、筛选和导出容器日志,支持进入容器执行 `/bin/bash` - 终端与文件:内置 SSH 交互终端,支持远程目录浏览、文件上传、下载、传输进度展示和取消 - 审计与留痕:记录关键操作日志,支持按时间、用户、服务器筛选,支持日志导出和管理员删除 - 桌面体验:支持深色/浅色主题切换、单窗口工作台和本地 SQLite 持久化 ## 界面预览 ### 登录 ![登录页面.png](img/登录页面.png) ### 系统概览 ![系统概览](img/系统概览.png) ### 镜像管理 ![镜像管理](img/镜像管理.png) ### 容器管理 ![容器管理](img/容器管理.png) ### 终端与文件 ![终端命令](img/终端命令.png) ### 用户管理 ![用户管理](img/用户管理.png) ### 操作日志 ![操作日志](img/操作日志.png) ## 适用场景 - 同时维护多台 Docker 主机,希望统一查看状态和执行常用操作 - 开发与运维共用一套轻量桌面工具,减少 SSH 命令记忆成本 - 需要基础级别的本地审计留痕,但暂不引入完整运维管控体系 - 需要在 macOS 桌面环境中使用原生打包应用管理远程容器主机 ## 不包含的能力 - Kubernetes、Docker Swarm、Nomad 等集群编排能力 - 应用发布流水线、灰度发布、CI/CD 编排 - 多租户权限模型和细粒度 RBAC - 完整的资产管理、监控告警平台和 CMDB 联动 ## 技术选型 ### 桌面应用框架 - `Tauri 2`:作为桌面容器与命令桥接层,安装体积更轻,适合 Rust 后端和 Web 前端组合 ### 后端 - `Rust 2024 Edition`:负责主机连接、Docker 命令执行、文件传输、任务状态和本地数据存储 - `ssh2`:用于 SSH 登录、远程命令执行、SFTP 文件传输和交互终端 - `rusqlite`:本地嵌入式数据库,用于存储用户、主机、操作日志、任务和设置 - `serde` / `serde_json`:前后端命令参数与响应序列化 - `chrono`:时间处理与日志时间戳生成 - `uuid`:任务和传输链路中的唯一标识 ### 前端 - `Vue 3`:负责单页工作台 UI 与状态交互 - `TypeScript`:提供接口类型约束和命令调用边界 - `Vite`:前端开发服务器与构建工具 - `Pinia`:管理登录态、服务器上下文等全局状态 - `Vue Router`:当前版本用于单页路由承载 - `Element Plus`:作为桌面管理界面的基础组件库 - `xterm.js`:提供浏览器端终端显示与交互能力 ## 系统架构 ```text Frontend (Vue 3 + Element Plus + xterm.js) | | Tauri invoke v Desktop Shell (Tauri 2) | +-- Rust Commands | |- auth | |- server | |- docker | |- ssh_terminal | |- file | `- audit | +-- SSH / SFTP | `- Remote Linux Hosts | `-- SQLite `- users / servers / operation_logs / tasks / settings ``` ### 后端模块划分 - `src-tauri/src/commands/auth.rs`:登录、初始化管理员、用户管理 - `src-tauri/src/commands/server.rs`:主机增删改查与连接测试 - `src-tauri/src/commands/docker.rs`:系统概览、镜像、容器、日志和 Docker 操作 - `src-tauri/src/commands/ssh_terminal.rs`:SSH 交互终端生命周期管理 - `src-tauri/src/commands/file.rs`:远程文件浏览、上传、下载与取消 - `src-tauri/src/commands/audit.rs`:操作日志查询、导出与删除 ### 前端界面组织 当前前端主界面集中在 `frontend/src/pages/DashboardPage.vue`,通过左侧导航切换以下工作区: - 系统概览 - 镜像管理 - 容器管理 - 终端命令 - 主机管理 - 操作日志 - 用户管理 ## 项目结构 ```text docker-manager/ ├─ frontend/ # Vue 3 前端 │ ├─ src/ │ │ ├─ api/ # Tauri 命令调用封装 │ │ ├─ components/ # 通用组件 │ │ ├─ pages/ # 页面视图 │ │ ├─ router/ # 路由 │ │ ├─ stores/ # Pinia 状态 │ │ └─ types/ # TS 类型定义 ├─ src-tauri/ # Tauri + Rust 后端 │ ├─ src/ │ │ ├─ commands/ # 业务命令 │ │ ├─ db/ # SQLite 初始化 │ │ ├─ errors/ # 错误模型 │ │ ├─ models/ # API / Domain 模型 │ │ └─ state/ # 应用状态 ├─ img/ # README 截图资源 ├─ BUILD.md # 本地打包说明 └─ README.md ``` ## 运行环境 建议环境: | 工具 | 建议版本 | | --- | --- | | Rust | 1.85+ | | Node.js | 18+ | | npm | 9+ | | Xcode Command Line Tools | 最新 | > 当前仓库打包链路主要面向 macOS。Linux 和 Windows 如需发布,建议补充对应平台的验证与打包说明。 ## 快速开始 ### 1. 安装前端依赖 ```bash cd frontend npm install ``` ### 2. 启动开发模式 ```bash npm run tauri ``` 或在仓库根目录执行: ```bash ./frontend/node_modules/.bin/tauri dev ``` ### 3. 构建前端 ```bash cd frontend npm run build ``` ### 4. 检查 Rust 后端 ```bash cd src-tauri cargo check ``` ### 5. 打包桌面应用 ```bash cd frontend npm run tauri:app ``` 如需生成 `dmg`: ```bash cd frontend npm run tauri:dmg ``` 更多打包说明见 [BUILD.md](BUILD.md)。 ## 数据与安全说明 当前版本具备可用性,但还不是强化安全版本,开源时应明确边界: - 本地数据库使用 SQLite,默认保存在应用数据目录中的 `container-manager.sqlite` - 用户账号密码当前为本地明文存储,尚未引入密码哈希 - 服务器密码当前为本地明文存储,尚未接入系统钥匙串或密钥管理服务 - “记住凭据”功能当前保存在前端本地存储中,适合单用户本机使用,不适合高安全要求场景 - 当前更适合个人设备、受控办公终端或内网运维环境 如果计划面向更广泛的生产开源用户,建议优先补齐以下事项: - 密码哈希与认证强化 - 主机凭据加密存储 - 系统钥匙串集成 - 更细粒度的权限模型 - 更完整的异常恢复与任务管理 ## 已实现的数据表 当前 SQLite 初始化包含以下核心表: - `users` - `servers` - `operation_logs` - `terminal_command_logs` - `tasks` - `settings` ## 开源建议 如果准备正式对外开源,建议同时补齐以下仓库元数据: - `LICENSE` - `.gitignore` 与发布产物清理规则 - `CONTRIBUTING.md` - `CHANGELOG.md` - Issue / PR 模板 - 首个公开版本号与发布说明 ## 许可证 本项目采用 `MIT` License。详见 [LICENSE](LICENSE)。