Docker Compose 多容器部署:构建完整的应用编排方案
Docker Compose 是定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件,你可以配置整个应用栈。
一、基本用法
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=development
depends_on:
- db
- redis
db:
image: postgres:16
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD: secret
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
postgres-data:
二、网络配置
services:
frontend:
networks:
- frontend
- backend
api:
networks:
- backend
db:
networks:
- backend
networks:
frontend:
backend:
三、环境管理
# docker-compose.override.yml (开发环境)
services:
web:
environment:
- DEBUG=true
volumes:
- .:/app
# docker-compose.prod.yml (生产环境)
services:
web:
environment:
- NODE_ENV=production
- DEBUG=false
# 开发环境
docker compose up
# 生产环境
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
四、健康检查
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
五、常用命令
docker compose up -d # 后台启动
docker compose down # 停止并移除
docker compose logs -f # 查看日志
docker compose build # 构建镜像
docker compose exec web sh # 进入容器
docker compose restart web # 重启服务
六、生产最佳实践
- 使用 .env 文件管理环境变量
- 配置资源限制(CPU/内存)
- 设置 restart 策略
- 使用命名卷持久化数据
- 不要在容器中存储敏感信息硬编码