本项目为实验性项目。
完全采用 Vibe Coding 方式编写,以 AI 代码代理为主,人类为辅。
一个基于 JavaFX 的 Docker 镜像管理工具,提供可视化界面来管理 Docker 镜像,支持本地和远程 Docker 连接。
- 多种连接方式
- 本地 Docker 连接
- 远程 TCP 连接
- 连接持久化
- 自动保存连接配置到本地
- 跨平台配置存储(Windows/Linux/macOS)
- 连接测试
- 一键测试 Docker 连接可用性
- 显示 Docker 版本和系统信息
- 镜像列表
- 展示所有 Docker 镜像
- 显示仓库名、标签、ID、创建时间、大小
- 镜像操作
- ✅ 拉取镜像(支持进度显示)
- ✅ 删除单个镜像
- ✅ 批量删除镜像(按前缀和时间范围)
- ✅ 一键清理无 tag 镜像
- 高级功能
- 前缀匹配批量删除
- 时间范围过滤(天/周/月/年)
- 强制预览机制,防止误操作
- 实时进度显示
- Java 25+
- Maven 3.8+
- Docker (本地或远程)
# 克隆项目
git clone <repository-url>
cd DockerVibePanel
# 编译
mvn clean compile
# 打包(包含依赖的可执行 jar)
mvn clean package# 使用 Maven 直接运行(开发时推荐)
mvn javafx:run
# 或运行打包后的可执行 jar(位于 target/)
# assembly 插件配置会把带依赖的 jar 输出为 target/docker-vibe-panel.jar
java -jar target/docker-vibe-panel.jarDockerVibePanel/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/github/applearound/dvp/
│ │ │ ├── ApplicationFX.java # JavaFX 应用入口
│ │ │ ├── config/
│ │ │ │ └── ConfigStore.java # 配置存储(跨平台)
│ │ │ ├── controller/
│ │ │ │ ├── MainController.java # 主界面控制器
│ │ │ │ ├── ConnectionDialogController.java # 连接对话框
│ │ │ │ ├── ImageManagerController.java # 镜像管理
│ │ │ │ ├── PullImageDialogController.java # 拉取镜像对话框
│ │ │ │ └── BatchDeleteDialogController.java # 批量删除
│ │ │ ├── model/
│ │ │ │ ├── DockerConnection.java
│ │ │ │ └── DockerImage.java
│ │ │ └── service/
│ │ │ └── DockerService.java # 与 Docker API 交互的服务
│ │ └── resources/
│ │ ├── fxml/
│ │ │ ├── main.fxml
│ │ │ ├── connection_dialog.fxml
│ │ │ ├── image_manager.fxml
│ │ │ ├── pull_image_dialog.fxml
│ │ │ └── batch_delete_dialog.fxml
│ │ ├── css/app.css
│ │ └── logback.xml
└── README.MD
- JavaFX 17 - 现代化桌面应用 UI 框架
- docker-java 3.7.0 - Docker API Java 客户端
- OkHttp 5.3.2 - HTTP 客户端传输层
- Fastjson2 2.0.60 - JSON 序列化/反序列化
- Lombok 1.18.42 - 简化 Java 代码
- Logback 1.5.21 - 日志框架
- Apache Commons Lang3 - 通用工具库
- Guava - Google 核心库
- Maven 3.8+ - 项目构建和依赖管理
应用配置文件(connections.json)根据不同操作系统存储在:
| 操作系统 | 配置目录 |
|---|---|
| Windows | %APPDATA%\codegen\connections.json |
| macOS | ~/Library/Application Support/codegen/connections.json |
| Linux | ~/.config/codegen/connections.json |
新建连接
- 支持本地 Docker 和远程 TCP 连接
- 自动验证输入(主机地址、端口)
- 持久化存储到本地配置文件
测试连接
- 实时测试 Docker 连接可用性
- 显示 Docker 版本、API 版本、操作系统信息
- 后台线程执行,不阻塞 UI
拉取镜像
- 输入镜像名称(如
nginx:latest) - 实时显示拉取进度(百分比、状态)
- 自动刷新镜像列表
删除镜像
- 单个删除:点击操作列的删除按钮
- 批量删除:指定前缀和时间范围
- 强制预览:必须先预览匹配的镜像才能删除
- 进度追踪:显示删除进度和结果统计
清理无 tag 镜像
- 一键清理所有悬空镜像(
<none>:<none>) - 等同于
docker image prune -f - 显示释放的磁盘空间
智能过滤
- 前缀匹配:
mysql、nginx、xxx.registry.com/ - 时间范围:超过 N 天/周/月/年的镜像
- 强制必填:前缀不能为空,防止误删所有镜像
安全机制
- 预览功能:显示所有匹配的镜像详情
- 二次确认:在预览窗口确认删除
- 进度显示:实时显示删除进度
- 错误处理:详细的失败信息
本项目采用 MIT 许可证 - 详见 LICENSE 文件。
- GitHub: @applearound
- docker-java - Docker API Java 客户端
- JavaFX - 现代化的桌面应用框架
- Fastjson2 - 高性能 JSON 库
注意: 确保 Docker 守护进程正在运行,并且已正确配置访问权限。
如有问题或建议,欢迎提交 Issue!
