01
课程导论
什么是镜像裁剪?为什么需要平衡功能与体积?课程目标与学习路径。
概念入门
02
Docker基础回顾
镜像分层原理、Dockerfile基础指令、构建上下文。
Docker分层
03
Alpine基础镜像
Alpine vs Ubuntu vs CentOS,Alpine的包管理器apk使用。
Alpineapk
04
多阶段构建(上)
多阶段构建的概念、基本语法、第一个多阶段Dockerfile。
多阶段构建
05
多阶段构建(下)
复制产物、依赖分离、实战:Go应用的多阶段构建。
Go实战
06
减少镜像层数
RUN指令合并、链式操作、减少层数的技巧与陷阱。
层数优化
07
清理构建缓存
apt/yum/apk缓存清理、pip缓存清理、npm缓存清理。
缓存清理
08
.dockerignore文件
作用与语法、常见忽略模式、避免敏感文件泄露。
安全配置
09
基础镜像选择策略
官方镜像 vs 第三方镜像、镜像大小对比、安全考量。
策略安全
10
静态链接与动态链接
编译语言(Go/Rust/C)的镜像优化、静态编译的优势。
编译静态
11
Python应用镜像优化
使用slim镜像、pip依赖管理、多阶段构建Python应用。
Pythonslim
12
Node.js应用镜像优化
npm ci vs npm install、生产依赖分离、使用node:alpine。
Nodealpine
13
Java应用镜像优化
JRE vs JDK、分层Jar构建、使用jlink定制运行时。
Javajlink
14
前端应用镜像优化
构建产物分离、使用nginx:alpine、gzip压缩。
前端nginx
15
镜像分析工具
docker history、dive、docker-slim、imagelayers。
工具分析
16
镜像安全扫描
Trivy、Clair、Grype的使用、常见漏洞修复。
安全扫描
17
镜像签名与验证
Docker Content Trust、Notary、cosign。
签名信任
18
镜像仓库优化
Harbor配置、镜像清理策略、镜像复制与同步。
仓库Harbor
19
CI/CD中的镜像优化
GitLab CI、GitHub Actions、Jenkins中的镜像构建最佳实践。
CI/CD自动化
20
缓存优化策略
Docker BuildKit、--cache-from、远程缓存。
缓存BuildKit
21
压缩与精简
upx压缩二进制、strip符号表、zstd压缩。
压缩upx
22
特殊场景优化
GPU镜像、ARM架构镜像、Windows容器镜像。
GPUARM
23
镜像体积与启动速度的权衡
预装依赖 vs 按需下载、懒加载策略。
权衡启动
24
企业级镜像规范
命名规范、标签策略、版本管理、Changelog。
规范企业
25
实战案例1:Python 1.2GB→150MB
将一个1.2GB的Python镜像裁剪到150MB。
实战Python
26
实战案例2:Node 800MB→100MB
将一个800MB的Node.js镜像裁剪到100MB。
实战Node
27
实战案例3:Java 600MB→120MB
将一个600MB的Java镜像裁剪到120MB。
实战Java
28
实战案例4:前端Nginx 400MB→50MB
将一个400MB的前端Nginx镜像裁剪到50MB。
实战Nginx
29
镜像优化效果评估
性能测试、安全测试、兼容性测试。
评估测试
30
课程总结与展望
镜像优化的未来趋势、Kubernetes中的镜像优化、Serverless场景下的镜像策略。
总结K8s