外观
一句话答案
多阶段构建分离编译和运行环境,利用缓存加速构建,用 slim/alpine 基础镜像减小体积。
核心要点
关键实践:
- 多阶段构建:编译环境和运行环境分离(700MB→<100MB)
- 利用缓存:不常变的层放前面(依赖先于代码)
- 减小体积:用 slim/alpine 基础镜像、合并 RUN、清理缓存
- 安全:不用 root 运行、.dockerignore 排除敏感文件
追问与易错
追问方向:
- 这个概念在你的项目中是怎么应用的?
- 和相关技术/方案相比有什么优劣?
- 如果出了问题你会怎么排查?
易错点:
- ❌ 只知道概念不知道原理——面试官会追问底层实现
- ❌ 缺乏实际使用经验——结合项目场景回答更有说服力
💡 记忆锚点
Dockerfile优化四字诀"分层缓小安":多阶段构建分离编译和运行(700MB缩到<100MB),不常变的层放前面利用缓存(先COPY pom.xml装依赖,再COPY代码),用alpine/slim基础镜像减小体积(合并RUN+清缓存),不用root跑容器+.dockerignore排除敏感文件保安全。