|
@@ -1,71 +1,76 @@
|
|
|
# Docker Java SDK 教程开发计划
|
|
# Docker Java SDK 教程开发计划
|
|
|
|
|
|
|
|
## 项目概述
|
|
## 项目概述
|
|
|
-基于 `template.md` 的叙述风格,按照 `docker-java-sdk.md` 的大纲,编写 Docker Java SDK 使用教程文档。每章完成后提交到 Git 本地仓库。
|
|
|
|
|
|
|
+基于 `template.md` 的叙述风格,按照 `docker-java-sdk.md` 的大纲,编写 Docker Java SDK 使用教程文档。教程正文见 `docker-java-sdk-tutorial.md`。
|
|
|
|
|
|
|
|
-## 工作计划
|
|
|
|
|
|
|
+## 完成情况
|
|
|
|
|
|
|
|
-### Chapter 1: 前置Docker配置
|
|
|
|
|
-- [ ] 1.1 Docker 用户组配置
|
|
|
|
|
-- [ ] 1.2 网络协议配置(Unix socket / TCP)
|
|
|
|
|
-- [ ] 1.3 systemd service 配置示例
|
|
|
|
|
-- [ ] 1.4 权限问题解决方案
|
|
|
|
|
-- [ ] Review & Commit
|
|
|
|
|
|
|
+### 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: 快速入门
|
|
|
|
|
-- [ ] 2.1 创建 DockerClient(默认配置)
|
|
|
|
|
-- [ ] 2.2 自定义配置连接 Docker
|
|
|
|
|
-- [ ] 2.3 连接测试(ping)
|
|
|
|
|
-- [ ] 2.4 拉取镜像(pullImage)
|
|
|
|
|
-- [ ] 2.5 创建容器并启动(createContainer + startContainer)
|
|
|
|
|
-- [ ] 2.6 JUnit 5 测试用例
|
|
|
|
|
-- [ ] 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
|
|
|
|
|
-- [ ] 3.1 listImagesCmd - 列出所有镜像
|
|
|
|
|
-- [ ] 3.2 inspectImageCmd - 获取镜像详细信息
|
|
|
|
|
-- [ ] 3.3 pullImageCmd - 拉取镜像(异步回调)
|
|
|
|
|
-- [ ] 3.4 pushImageCmd - 推送镜像
|
|
|
|
|
-- [ ] 3.5 removeImageCmd - 删除镜像
|
|
|
|
|
-- [ ] 3.6 tagImageCmd - 标记镜像
|
|
|
|
|
-- [ ] 3.7 saveImageCmd / loadImageCmd - 导入导出镜像
|
|
|
|
|
-- [ ] 3.8 JUnit 5 测试用例
|
|
|
|
|
-- [ ] 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
|
|
|
|
|
-- [ ] 4.1 buildImageCmd - 从 Dockerfile 构建镜像
|
|
|
|
|
-- [ ] 4.2 从 tar 包构建镜像
|
|
|
|
|
-- [ ] 4.3 构建上下文配置
|
|
|
|
|
-- [ ] 4.4 JUnit 5 测试用例
|
|
|
|
|
-- [ ] 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
|
|
|
|
|
-- [ ] 5.1 createContainerCmd - 创建容器
|
|
|
|
|
-- [ ] 5.2 startContainerCmd - 启动容器
|
|
|
|
|
-- [ ] 5.3 stopContainerCmd - 停止容器
|
|
|
|
|
-- [ ] 5.4 killContainerCmd - 强制停止容器
|
|
|
|
|
-- [ ] 5.5 removeContainerCmd - 删除容器
|
|
|
|
|
-- [ ] 5.6 listContainersCmd - 列出容器
|
|
|
|
|
-- [ ] 5.7 inspectContainerCmd - 获取容器详细信息
|
|
|
|
|
-- [ ] 5.8 JUnit 5 测试用例
|
|
|
|
|
-- [ ] 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
|
|
|
|
|
-- [ ] 6.1 logsCmd - 获取容器日志
|
|
|
|
|
-- [ ] 6.2 execCreateCmd / execStartCmd - 在容器中执行命令
|
|
|
|
|
-- [ ] 6.3 copyArchiveFromContainerCmd - 从容器复制文件
|
|
|
|
|
-- [ ] 6.4 copyArchiveToContainerCmd - 向容器复制文件
|
|
|
|
|
-- [ ] 6.5 attachContainerCmd - 连接到容器
|
|
|
|
|
-- [ ] 6.6 waitContainerCmd - 等待容器停止
|
|
|
|
|
-- [ ] 6.7 JUnit 5 测试用例
|
|
|
|
|
-- [ ] 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 对照表
|
|
|
|
|
-- [ ] 7.1 DockerClient 接口方法一览表
|
|
|
|
|
-- [ ] 7.2 Command 对象与 API 的对应关系
|
|
|
|
|
-- [ ] 7.3 常用模型类说明
|
|
|
|
|
-- [ ] 7.4 错误处理机制
|
|
|
|
|
-- [ ] 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`
|
|
- 日志输出统一使用 SLF4J Logger,禁止 `System.out.println`
|
|
@@ -73,6 +78,11 @@
|
|
|
- 所有测试使用 JUnit 5 (`org.junit.jupiter.api`)
|
|
- 所有测试使用 JUnit 5 (`org.junit.jupiter.api`)
|
|
|
- 保持与现有代码一致的风格,遵循 Java 17 语法
|
|
- 保持与现有代码一致的风格,遵循 Java 17 语法
|
|
|
|
|
|
|
|
-## Git 提交规范
|
|
|
|
|
-- 每完成一个小知识点后提交
|
|
|
|
|
-- Commit message 简明描述该知识点(如 `feat: add Docker client creation`)
|
|
|
|
|
|
|
+## 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`
|