首页 文章 分类 关于

Docker 容器化部署完全手册:镜像、编排、监控

从 Dockerfile 最佳实践到 docker-compose 多服务编排,再到生产环境监控方案。

作者头像
杨一一

这个人很懒,什么都没留下

前言

Docker 已成为应用交付的标准方式。本文从镜像构建、编排、监控三个层面分享最佳实践。

一、Dockerfile 最佳实践

FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

关键点:1. 用 slim 镜像减小体积 2. 先复制 requirements 再复制代码,利用缓存 3. 不用 root 运行

二、多阶段构建

构建阶段用完整镜像编译,运行阶段用 alpine 镜像。最终镜像可减小到 100MB 以内。

三、docker-compose 编排

version: "3.9"
services:
  web:
    build: .
    ports: ["8000:8000"]
    depends_on: [db, redis]
    env_file: .env
  db:
    image: mysql:8
    volumes: ["db_data:/var/lib/mysql"]
  redis:
    image: redis:7-alpine
volumes:
  db_data:

四、健康检查

HEALTHCHECK --interval=30s --timeout=3s \
  CMD curl -f http://localhost:8000/health || exit 1

五、监控方案

1. cAdvisor - 容器资源监控
2. Prometheus + Grafana - 指标可视化
3. Loki - 日志聚合

六、常见坑

1. 镜像体积过大 → 多阶段构建
2. 容器内时区不对 → 设置 TZ 环境变量
3. 数据丢失 → 数据卷正确挂载

总结

Docker 让部署标准化、可重现。掌握镜像优化和编排是生产环境的核心能力。

1

评论 (0)

暂无评论,快来发表第一条评论吧