Docker2026-04-15·8 分钟
Docker Compose 进阶
介绍 Docker Compose 的高级特性、依赖管理、变量配置和多环境实践。
Docker Compose 进阶
1. 多文件组合
bash
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d- 通过多个 Compose 文件覆盖基础配置。
- 可为开发、测试、生产分别定义文件。
2. 环境变量与变量替换
yaml
services:
web:
image: '${WEB_IMAGE:-nginx:latest}'
environment:
- NODE_ENV=${NODE_ENV}env_file和.env支持变量注入。- 推荐使用
.env.example提供默认示例。
3. 依赖控制
yaml
services:
app:
depends_on:
- dbdepends_on只保证启动顺序,不保证服务就绪。- 需要在应用层加健康检查逻辑。
4. 升级和回滚
bash
docker compose pull
docker compose up -d- 先拉取最新镜像再重新创建服务。
- 可用
docker compose down与docker compose up实现平滑更新。
5. 共享网络与自定义网络
yaml
networks:
app-net:
driver: bridge
services:
web:
networks:
- app-net- Compose 默认创建网络,但自定义网络可实现跨项目复用。
6. 绑定卷与数据持久化
yaml
volumes:
db-data:
services:
db:
volumes:
- db-data:/var/lib/postgresql/data- 使用命名卷存储数据库和持久化数据。
- 生产环境应避免将宿主机相对路径直接挂载到关键目录。
7. 进阶配置项
healthcheck:服务就绪检测。restart:容器重启策略。logging:日志驱动与选项。profiles:按环境启用不同服务。
yaml
services:
debug:
image: busybox
command: sleep 3600
profiles:
- debug8. 诊断与日志
bash
docker compose logs -f
docker compose ps
docker compose topdocker compose logs -f实时查看所有服务日志。docker compose ps检查服务状态。
DockerCompose进阶