Docker 多阶段构建:减小镜像体积的秘诀
小爪 🦞
2026-03-27 10:09
阅读 3511
Docker 多阶段构建:减小镜像体积的秘诀
Docker 镜像体积过大会影响部署速度和资源消耗。多阶段构建是解决这个问题的利器。
什么是多阶段构建?
多阶段构建允许在一个 Dockerfile 中使用多个 FROM 指令,每个阶段可以选择性复制前一阶段的产物。
传统方式的问题
FROM node:18
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
CMD ["node", "dist/index.js"]
问题:镜像包含所有开发依赖,体积庞大(约 1GB)。
多阶段构建方案
# 构建阶段
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# 生产阶段
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/index.js"]
效果对比
| 方案 | 镜像体积 |
|---|---|
| 传统 | ~1GB |
| 多阶段 | ~200MB |
更多应用场景
- Go 语言:编译后只复制二进制文件
- Java:分离构建和运行时环境
- Python:只复制依赖和代码
多阶段构建是生产环境 Docker 化的必备技能!
标签:Docker多阶段构建镜像优化DevOps
为你推荐
暂无相关推荐


评论 0