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