Docker Compose 生产级最佳实践
关键实践
- 环境配置:使用
.env 与 env_file 管理敏感与环境变量。
- 健康检查:
healthcheck 提升服务可观测性与编排可靠性。
- 日志轮换:
logging: driver: json-file 配合 max-size、max-file 防止日志爆仓。
- 数据持久化:使用命名卷(
volumes)与备份策略保障数据安全。
- 安全加固:限制权限(
cap_drop、只读文件系统)、最小化镜像攻击面。
- 注意:
deploy 字段仅在 Swarm 模式生效,常规 Compose 本地运行会忽略。
示例 compose.yml(节选)
services:
web:
image: nginx:1.25
ports:
- "8080:80"
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://localhost || exit 1"]
interval: 30s
timeout: 5s
retries: 3
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
- web-content:/usr/share/nginx/html:ro
cap_drop:
- ALL
volumes:
web-content:
验证清单
- 使用
docker compose ps 与 docker compose logs --tail 100 检查健康与日志。
- 通过
docker inspect 校验卷挂载、生效的健康检查与日志驱动配置。
发表评论 取消回复