Skip to content

applearound/DockerVibePanel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker 快捷操作面板

Java JavaFX Maven License

本项目为实验性项目。

完全采用 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.jar

📁 项目结构

DockerVibePanel/
├── 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

🔧 核心功能详解

1. 连接管理

新建连接

  • 支持本地 Docker 和远程 TCP 连接
  • 自动验证输入(主机地址、端口)
  • 持久化存储到本地配置文件

测试连接

  • 实时测试 Docker 连接可用性
  • 显示 Docker 版本、API 版本、操作系统信息
  • 后台线程执行,不阻塞 UI

2. 镜像管理

拉取镜像

  • 输入镜像名称(如 nginx:latest
  • 实时显示拉取进度(百分比、状态)
  • 自动刷新镜像列表

删除镜像

  • 单个删除:点击操作列的删除按钮
  • 批量删除:指定前缀和时间范围
  • 强制预览:必须先预览匹配的镜像才能删除
  • 进度追踪:显示删除进度和结果统计

清理无 tag 镜像

  • 一键清理所有悬空镜像(<none>:<none>
  • 等同于 docker image prune -f
  • 显示释放的磁盘空间

3. 批量删除

智能过滤

  • 前缀匹配:mysqlnginxxxx.registry.com/
  • 时间范围:超过 N 天/周/月/年的镜像
  • 强制必填:前缀不能为空,防止误删所有镜像

安全机制

  • 预览功能:显示所有匹配的镜像详情
  • 二次确认:在预览窗口确认删除
  • 进度显示:实时显示删除进度
  • 错误处理:详细的失败信息

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

👨‍💻 作者

🙏 致谢


注意: 确保 Docker 守护进程正在运行,并且已正确配置访问权限。

如有问题或建议,欢迎提交 Issue!

About

一个 Docker 快捷操作面板。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published