ToolkitX
知识库工具箱

Dockerfile 编写

Dockerfile 指令详解与最佳实践

25min·进阶

01. Dockerfile 基础

Dockerfile 是一个文本文件,包含构建镜像的指令。每条指令创建镜像的一层。
dockerfile
# 基础镜像
FROM node:20-alpine

# 工作目录
WORKDIR /app

# 复制依赖文件
COPY package*.json ./

# 安装依赖
RUN npm ci --only=production

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 3000

# 启动命令
CMD ["node", "server.js"]

02. 常用指令详解

FROM - 指定基础镜像:
dockerfile
FROM node:20-alpine           # 指定版本
FROM ubuntu:22.04             # 操作系统镜像
FROM scratch                  # 空镜像(用于静态编译)

03. 多阶段构建

多阶段构建减小镜像体积:
dockerfile
# 构建阶段
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# 运行阶段
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/server.js"]
多阶段构建可以将构建环境和运行环境分离,大幅减小最终镜像体积。

知识测验

1/4正确 0

Dockerfile 中 COPY 和 ADD 的区别是?

下一节

Docker Compose

下一节