Docker Compose 生产可用性检查清单:从开发环境到上线的 12 个要点
Docker Compose 生产可用性检查清单:从开发环境到上线的 12 个要点
笨鸟先飞核心配置检查
- 版本与语法:
version对齐当前 Compose/Engine 版本,避免弃用字段。 - 网络隔离:自定义
networks,不同环境/服务分网,减少横向风险。 - 卷与权限:最小化挂载,区分只读/读写;避免将
/var/run/docker.sock暴露给无关容器。 - 资源限制:为关键服务设定
deploy.resources.limits(CPU/内存),防止互相抢占。 - 健康检查:
healthcheck+restart策略,失败时自动重启或退出。 - 环境变量与密钥:使用
.env或secrets,避免把密钥写进镜像和 Git。 - 日志策略:
logging.driver(如json-file/loki),控制max-size/max-file,避免磁盘爆满。 - 依赖顺序:
depends_on+ 健康检查而不是仅启动顺序,确保上游可用。 - 时区与时钟:对有审计/过期逻辑的服务统一时区或使用 UTC。
- 端口暴露:仅暴露必要端口;内部流量走 overlay/bridge。
- 持久化与备份:标记关键数据卷,建立定时备份(DB/对象存储)。
- CI/CD 集成:Build cache、镜像签名、漏洞扫描(Trivy/Grype),上线前阻断高危风险。
示例片段(精简)
1 | services: |
运维与监控
- 监控/日志:采集容器 metrics(cAdvisor/Node Exporter)+ 日志(Loki/EFK);关键指标建告警。
- 镜像治理:定期清理 dangling 镜像/无用卷;扫描 CVE。
- 蓝绿/滚动:在 CI/CD 中用标签控制滚动发布,支持回滚。
- 故障演练:模拟容器故障/网络隔离,验证自动恢复与告警链路。
结论
Compose 可以跑生产,但需要资源限制、健康检查、日志/监控、密钥、备份等一整套约束与配套。按上面 12 条检查并持续演练,你的 Compose 栈会更稳、更可观测。***


