Docker 容器镜像瘦身秘籍:多阶段构建与 alpine/distroless 实践
一个 1.5GB 的镜像不仅拉取缓慢占用带宽,还潜藏大量系统安全漏洞。
瘦身核心三板斧
- 多阶段构建 (Multi-stage Build):编译环境归编译环境,运行镜像只拷贝最终可执行二进制;
- 基础镜像选型:从
ubuntu换成alpine(5MB)或者 Google 的distroless(无 shell、极度安全); - 利用 Docker 构建缓存:把频繁变动的源代码复制放在
package.json/go.mod之后。
优化后 Spring Boot 镜像从 800MB 降到 150MB,Go 服务直接降到 15MB!