第八章:最佳实践¶
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;"]
缓存优化¶
镜像管理¶
标签策略¶
镜像标签策略:
- 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
日志管理¶
小结¶
最佳实践要点:
- Dockerfile:多阶段构建、缓存优化
- 镜像管理:标签策略、私有仓库
- 监控:健康检查、日志管理
完成本教程后,你应该能够高效使用 Docker。