# Docker Java SDK 教程开发计划 ## 项目概述 基于 `template.md` 的叙述风格,按照 `docker-java-sdk.md` 的大纲,编写 Docker Java SDK 使用教程文档。每章完成后提交到 Git 本地仓库。 ## 工作计划 ### Chapter 1: 前置Docker配置 - [ ] 1.1 Docker 用户组配置 - [ ] 1.2 网络协议配置(Unix socket / TCP) - [ ] 1.3 systemd service 配置示例 - [ ] 1.4 权限问题解决方案 - [ ] 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 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 4: 镜像构建相关API - [ ] 4.1 buildImageCmd - 从 Dockerfile 构建镜像 - [ ] 4.2 从 tar 包构建镜像 - [ ] 4.3 构建上下文配置 - [ ] 4.4 JUnit 5 测试用例 - [ ] 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 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 7: DockerClient 核心对象及 API 对照表 - [ ] 7.1 DockerClient 接口方法一览表 - [ ] 7.2 Command 对象与 API 的对应关系 - [ ] 7.3 常用模型类说明 - [ ] 7.4 错误处理机制 - [ ] Review & Commit ## 编码规范 - 日志输出统一使用 SLF4J Logger,禁止 `System.out.println` - 每个代码案例需有合理注释,说明关键步骤和设计意图 - 所有测试使用 JUnit 5 (`org.junit.jupiter.api`) - 保持与现有代码一致的风格,遵循 Java 17 语法 ## Git 提交规范 - 每完成一个小知识点后提交 - Commit message 简明描述该知识点(如 `feat: add Docker client creation`)