# Docker Java SDK 教程开发计划 ## 项目概述 基于 `template.md` 的叙述风格,按照 `docker-java-sdk.md` 的大纲,编写 Docker Java SDK 使用教程文档。教程正文见 `docker-java-sdk-tutorial.md`。 ## 完成情况 ### Chapter 1: 前置Docker配置 ✅ - [x] 1.1 Docker 用户组配置 - [x] 1.2 网络协议配置(Unix socket / TCP) - [x] 1.3 systemd service 配置示例 - [x] 1.4 权限问题解决方案 - [x] Review & Commit ### Chapter 2: 快速入门 ✅ - [x] 2.1 创建 DockerClient(默认配置) - [x] 2.2 自定义配置连接 Docker - [x] 2.3 连接测试(ping) - [x] 2.4 拉取镜像(pullImage) - [x] 2.5 创建容器并启动(createContainer + startContainer) - [x] 2.6 JUnit 5 测试用例 - [x] Review & Commit ### Chapter 3: 镜像管理相关API ✅ - [x] 3.1 listImagesCmd - 列出所有镜像 - [x] 3.2 inspectImageCmd - 获取镜像详细信息 - [x] 3.3 pullImageCmd - 拉取镜像(异步回调) - [x] 3.4 removeImageCmd - 删除镜像 - [x] 3.5 tagImageCmd - 标记镜像 - [x] 3.6 JUnit 5 测试用例 - [x] Review & Commit ### Chapter 4: 镜像构建相关API ✅ - [x] 4.1 buildImageCmd - 从 Dockerfile 构建镜像 - [x] 4.2 构建上下文配置 - [x] 4.3 中间层清理 - [x] 4.4 JUnit 5 测试用例 - [x] Review & Commit ### Chapter 5: 容器管理相关API ✅ - [x] 5.1 createContainerCmd - 创建容器 - [x] 5.2 startContainerCmd - 启动容器 - [x] 5.3 stopContainerCmd - 停止容器 - [x] 5.4 killContainerCmd - 强制停止容器 - [x] 5.5 removeContainerCmd - 删除容器 - [x] 5.6 listContainersCmd - 列出容器 - [x] 5.7 inspectContainerCmd - 获取容器详细信息 - [x] 5.8 JUnit 5 测试用例 - [x] Review & Commit ### Chapter 6: 容器运维相关API ✅ - [x] 6.1 logsCmd - 获取容器日志 - [x] 6.2 execCreateCmd / execStartCmd - 在容器中执行命令 - [x] 6.3 waitContainerCmd - 等待容器停止 - [x] 6.4 JUnit 5 测试用例 - [x] Review & Commit ### Chapter 7: DockerClient 核心对象及 API 对照表 ✅ - [x] 7.1 DockerClient 接口方法一览表 - [x] 7.2 Command 对象与 API 的对应关系 - [x] 7.3 常用模型类说明 - [x] 7.4 错误处理机制 - [x] Review & Commit ## 源码结构 | 类名 | 说明 | |------|------| | `QuickStart` | 快速入门:客户端创建、连接、拉取镜像、建启容器 | | `DockerClientFactory` | 统一创建 DockerClient 的工厂类 | | `ImageManageAPI` | 镜像管理(list/inspect/pull/remove/tag/exists) | | `ImageBuildAPI` | 镜像构建(从 Dockerfile 构建) | | `ContainerManageAPI` | 容器管理(create/start/stop/kill/remove/list) | | `ContainerOpsAPI` | 容器运维(logs/exec/wait/copy) | ## 编码规范 - 日志输出统一使用 SLF4J Logger,禁止 `System.out.println` - 每个代码案例需有合理注释,说明关键步骤和设计意图 - 所有测试使用 JUnit 5 (`org.junit.jupiter.api`) - 保持与现有代码一致的风格,遵循 Java 17 语法 ## Git 提交记录 - `feat: add Chapter 1 - Docker pre-configuration and todo plan` - `feat: add Chapter 2 - DockerClient creation, connect, pull image, create/start container` - `feat: add Chapter 3 - image management APIs (list/inspect/pull/remove/tag/exists)` - `feat: add Chapter 4 - image build APIs from Dockerfile` - `feat: add Chapter 5 - container management APIs (create/start/stop/kill/remove/list/inspect)` - `feat: add Chapter 6 - container ops APIs (logs/exec/wait/copy)` - `feat: add Chapter 7 - DockerClient core objects and API reference table`