Docker Compose 生产环境最佳实践
Docker Compose 是开发和测试环境的利器,但在生产环境中使用需要特别注意。
基础配置
网络配置
networks:
frontend:
driver: bridge
backend:
driver: bridge
internal: true # 隔离后端网络
资源限制
services:
app:
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
健康检查
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
日志管理
services:
app:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
环境变量
services:
app:
env_file:
- .env.production
environment:
- NODE_ENV=production
数据持久化
services:
db:
volumes:
- db_data:/var/lib/postgresql/data
- ./backups:/backups
volumes:
db_data:
driver: local
重启策略
services:
app:
restart: unless-stopped
安全建议
- 不在 compose 文件中存储敏感信息
- 使用 secrets 管理密码
- 限制容器权限
- 定期更新镜像
- 监控容器状态
Docker Compose 在生产环境中的使用需要谨慎,但对于中小型应用来说,它仍然是一个不错的选择。