# DockerManage **Repository Path**: L_MH/docker-manage ## Basic Information - **Project Name**: DockerManage - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-28 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DockerManage 基于 **Tauri 2.0 + Vue 3** 的跨平台 Docker 桌面管理工具,通过本地 Docker API(Unix socket / Named Pipe)直接与 Docker Daemon 通信,提供容器、镜像、网络、卷、Compose 的一站式可视化管理。 ## 功能特性 ### Docker 管理 | 模块 | 能力 | | --- | --- | | **Dashboard** | 实时展示 Docker 引擎版本、容器/镜像/卷数量统计与磁盘占用概览 | | **容器** | 列表 / 创建 / 详情、启动·停止·重启·暂停·删除·重命名、日志查看、实时资源监控(CPU/内存/网络 IO)、交互式终端(基于 xterm) | | **镜像** | 列表 / 拉取 / 删除 / 检视 / 搜索 / 清理 / 通过 Dockerfile 构建 | | **网络** | 列表 / 创建 / 删除 / 检视、容器接入与断开网络 | | **卷** | 列表 / 创建 / 删除 / 检视 / 清理 | | **Compose** | Compose 项目列表、`up` / `down` / `restart`、日志聚合查看 | | **Daemon 配置** | 在应用内读取 / 编辑 `daemon.json` 并保存 | ### 系统与桌面能力 - **多布局**:侧边栏导航与顶部导航自由切换 - **国际化**:中文(zh-CN)/ 英文自动跟随系统,可手动切换 - **深色 / 浅色主题**:一键切换 - **系统托盘**:托盘菜单、左键显隐主窗口、关窗最小化到托盘 - **单实例运行**:再次启动时自动唤起已运行实例 - **开机自启**:支持配置系统开机自动启动 - **通知 / 日志**:集成 Tauri 通知与多目标日志(控制台 + 文件 + Webview) ## 技术栈 ### 前端 - **Vue 3** (3.5) — 组合式 API - **Naive UI** (2.43) — UI 组件库 - **UnoCSS** (66.x) — 原子化 CSS - **Pinia** (3.x) — 状态管理 - **vue-router** (4.x) — 路由 - **vue-i18n** (9.x) — 国际化 - **xterm.js** (6.x) — 容器终端模拟 - **Axios** — HTTP 客户端(对接外部后端) - **Vite 6** — 构建工具,含自动导入与组件按需注册 ### 后端(Rust) - **Tauri 2.0** — 桌面应用框架与 IPC 通道 - **bollard 0.19** — Docker API 客户端(通过 Unix socket / Named Pipe 直连) - **tokio** — 异步运行时 - **Tauri 插件**:`shell` / `notification` / `dialog` / `autostart` / `os` / `opener` / `log` / `single-instance` ## 项目结构 ``` DockerManage/ ├── src/ # 前端源码 │ ├── components/ # 通用组件 + Docker 业务组件 │ ├── composables/ # 组合式函数(窗口关闭行为等) │ ├── layouts/ # 侧边栏 / 顶部导航布局 │ ├── locales/ # 中英文语言包 │ ├── router/ # 路由配置 │ ├── services/ # Tauri command 调用封装 │ ├── stores/ # Pinia 状态(docker / layout / theme) │ ├── sys-methods/ # 系统级能力封装(托盘/电源/蓝牙/网络…) │ ├── utils/ # 工具函数(Axios 封装等) │ ├── views/ # 页面(docker/* + system/*) │ └── App.vue ├── src-tauri/ # Rust 后端 │ └── src/ │ ├── docker/ # Docker 业务模块 │ │ ├── client.rs # Docker 客户端连接(socket 路径动态配置) │ │ ├── container.rs # 容器管理 + 终端 exec │ │ ├── image.rs # 镜像管理 │ │ ├── network.rs # 网络管理 │ │ ├── volume.rs # 卷管理 │ │ ├── compose.rs # Compose 管理 │ │ ├── system.rs # 引擎信息 / 事件流 / Daemon 配置 │ │ └── mod.rs # AppState 全局状态 │ ├── lib.rs # 插件注册 / 托盘 / command 注册 │ └── main.rs ├── build-deb.sh # Linux deb 打包脚本 └── vite.config.ts ``` ## 环境要求 - **Node.js** ≥ 20 - **pnpm** ≥ 11(项目已锁定 pnpm@11.15.1) - **Rust**(stable,推荐 1.85+,edition 2024) - **Tauri CLI** v2:`pnpm add -g @tauri-apps/cli` - **Docker Engine**:本地已安装并运行(Linux 为 `/var/run/docker.sock`,Windows 为 `//./pipe/docker_engine`) ### 平台系统依赖 - **Linux**:`webkit2gtk-4.1`、`libayatana-appindicator3-dev`、`librsvg2-dev`、`patchelf`(打包 deb 时使用) - **Windows**:WebView2 Runtime(Win10/11 自带) - **macOS**:Xcode Command Line Tools ## 快速开始 ### 1. 安装依赖 ```bash pnpm install ``` ### 2. 开发模式 ```bash pnpm tauri dev ``` 前端开发服务器运行于 `http://localhost:1420`,Rust 后端热重载。 ### 3. 仅前端开发(无 Tauri) ```bash pnpm dev ``` ### 4. 构建生产包 ```bash # 完整 Tauri 应用(当前平台产物) pnpm tauri build # 仅构建前端 pnpm build # 测试环境构建 pnpm build:test ``` ### 5. Linux 打包为 deb(可选) 先执行 `pnpm tauri build` 生成二进制,再使用项目根目录脚本: ```bash # 需在 src-tauri/target/release 下放置编译产物与图标 cd src-tauri/target/release bash ../../../build-deb.sh # 输出: com.secova.dockermanage_0.1.0_amd64.deb sudo dpkg -i com.secova.dockermanage_0.1.0_amd64.deb ``` ## Docker 连接说明 应用启动时会自动探测 Docker socket 路径: 1. 优先读取环境变量 `DOCKER_HOST` 2. Linux 默认 `/var/run/docker.sock` 3. Windows 默认 `//./pipe/docker_engine` 若初始连接失败,应用仍可启动,可在 **系统设置** 页面手动配置 socket 路径后点击重连。 ### 权限提示 若提示无法访问 socket,将当前用户加入 `docker` 组: ```bash sudo usermod -aG docker $USER newgrp docker ``` ## 环境变量 | 变量 | 说明 | 默认值 | | --- | --- | --- | | `VITE_APP_TITLE` | 应用标题 | `Docker Manage UI` | | `VITE_API_BASE_URL` | 外部 API 基础路径 | `http://localhost:8080` | | `VITE_API_TIMEOUT` | API 请求超时(毫秒) | `5000` | | `VITE_DEFAULT_LOCALE` | 默认语言 | `zh-CN` | | `DOCKER_HOST` | Docker socket 路径覆盖 | 平台默认 | ## 许可证 私有项目,© Secova。保留所有权利。