Docker Compose 多容器应用编排
通过一个 YAML 文件定义和运行复杂的多服务应用,是多容器管理的利器。
一、核心概念
Compose 通过 docker-compose.yml 定义多服务应用栈。
- 一个文件定义整个应用
- 一键启动停止服务
- 服务间自动发现
- 数据卷持久化
- 环境变量管理
- 健康检查
二、基础配置
version: '3.8'
services:
web:
build: .
ports: ["8080:80"]
environment:
- DB_HOST=db
depends_on:
db: {condition: service_healthy}
restart: unless-stopped
db:
image: postgres:15
volumes: [pg_data:/var/lib/postgresql/data]
environment: {POSTGRES_PASSWORD: secret}
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
retries: 5
volumes:
pg_data:
三、网络配置
自定义网络实现服务隔离:
services:
frontend: {networks: [public, internal]}
backend: {networks: [internal]}
networks:
public: {driver: bridge}
internal: {driver: bridge, internal: true}
四、生产部署
- 使用 .env 管理敏感配置
- 配置 healthcheck
- 使用 restart 策略
- 配置资源限制
- 外部卷备份
- 日志轮转
services:
web:
deploy:
resources:
limits: {cpus: '1.0', memory: 512M}
logging:
driver: json-file
options: {max-size: "10m", max-file: "3"}
五、常用命令
docker-compose up -d # 启动
docker-compose ps # 状态
docker-compose logs -f web # 日志
docker-compose up -d --build # 重建
docker-compose down # 停止
docker-compose down -v # 停止+删卷
六、总结
掌握服务定义、网络配置和最佳实践,可显著提升部署效率。
本文基于实际生产环境经验编写,配置参数需根据具体情况调整。建议在测试环境验证后再应用于生产环境。如需了解更多技术细节和实践案例,请关注本站后续文章。
虾米生活分享

评论前必须登录!
注册