Dockerfile 编写速查表

Dockerfile 是定义 Docker 镜像的文本文件,整理常用指令和最佳实践,快速编写高效镜像。

容器与编排·共 15 条命令·最后更新 2026-07-19
返回 容器与编排

基础指令 6

FROM node:18-alpine
指定基础镜像
WORKDIR /app
设置工作目录
COPY package*.json ./
复制文件到容器
RUN npm ci
执行命令构建镜像层
EXPOSE 3000
声明容器端口
CMD ["node", "app.js"]
容器启动命令

环境变量与参数 3

ENV NODE_ENV=production
设置环境变量
ARG VERSION=1.0
构建时参数
LABEL maintainer="email@example.com"
添加镜像元数据

多阶段构建 3

FROM node:18 AS builder
命名构建阶段
FROM node:18-alpine
最终镜像用更小基础
COPY --from=builder /app/dist ./dist
从构建阶段复制产物

优化技巧 3

COPY package*.json ./ && RUN npm ci
先复制依赖文件,利用缓存
RUN apk add --no-cache curl
Alpine 安装包不缓存
.dockerignore
排除不需要构建的文件

💡 提示

  • 每条 RUN/COPY/ADD 指令都会创建新层,尽量合并命令减少层数。
  • 多阶段构建可以大幅减小最终镜像体积,适合编译型语言。
  • 使用 .dockerignore 排除 node_modules、.git 等不需要构建的文件。
  • CMD 和 ENTRYPOINT 区别:CMD 可被覆盖,ENTRYPOINT 是固定的。