Docker镜像构建主要依靠docker build命令,通过读取Dockerfile指令逐层生成镜像;常用格式为docker build -t myapp:latest .,支持指定Dockerfile路径(-f)、传入构建参数(--build-arg)、多阶段构建及.dockerignore优化。

Docker 镜像构建主要靠 docker build 命令,核心是读取当前目录(或指定路径)下的 Dockerfile,按其中指令一步步生成镜像。
docker build 基本用法
最常用形式是:
docker build -t myapp:latest .
-
-t指定镜像名称和标签(如myapp:latest或myapp:v1.2) -
.表示构建上下文(context)为当前目录,Docker 会把该目录下所有文件打包发送给守护进程(注意:.dockerignore可排除不必要文件)
如果 Dockerfile 不在当前目录,可用 -f 指定路径:
docker build -t myapp -f ./path/to/Dockerfile .
构建时传参:--build-arg
Dockerfile 中可用 ARG 定义构建参数,运行时通过 --build-arg 赋值:
ARG NODE_ENV=production ENV NODE_ENV=$NODE_ENV
构建时:
docker build --build-arg NODE_ENV=development -t myapp .
⚠️ 注意:ARG 在 FROM 之后才生效;敏感值(如密码)不要硬编码进镜像,应改用构建秘密(--secret)或运行时注入。
加速构建的实用技巧
-
使用多阶段构建减少镜像体积
# 构建阶段 FROM node:18 AS builder COPY . . RUN npm ci && npm run build # 运行阶段 FROM nginx:alpine COPY --from=builder /app/dist /usr/share/nginx/html
合理安排
COPY和RUN顺序,利用层缓存(例如把变动少的COPY package*.json放在前面)添加
.dockerignore文件,避免把node_modules、.git、本地配置等无用内容传入构建上下文
查看和验证构建结果
构建完成后,可用以下命令确认:
docker images | grep myapp # 查看镜像是否存在 docker history myapp:latest # 查看各层来源和大小 docker run --rm -it myapp:latest sh -c 'echo "OK"' # 快速测试镜像能否运行
不复杂但容易忽略细节。


















