跳转至

第八章:最佳实践

Dockerfile 最佳实践

多阶段构建

# 构建阶段
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# 运行阶段
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

缓存优化

# 先复制依赖文件
COPY package*.json ./
RUN npm install

# 再复制源代码
COPY . .

镜像管理

标签策略

镜像标签策略:
- latest: 最新版本(不推荐生产使用)
- v1.2.3: 语义化版本
- v1.2.3-abc123: 版本 + Git commit
- main-20240101: 分支 + 日期

镜像仓库

# 推送到私有仓库
docker tag myapp registry.example.com/myapp:v1.0.0
docker push registry.example.com/myapp:v1.0.0

# 使用 Harbor
docker push harbor.example.com/project/myapp:v1.0.0

监控

健康检查

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
  CMD curl -f http://localhost:8080/health || exit 1

日志管理

services:
  app:
    image: myapp
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

小结

最佳实践要点:

  • Dockerfile:多阶段构建、缓存优化
  • 镜像管理:标签策略、私有仓库
  • 监控:健康检查、日志管理

完成本教程后,你应该能够高效使用 Docker。