DevOps
精选
Docker Compose 从入门到实践
站长发布于 2026/08/16更新于 2026/09/171838 次阅读
为什么需要 Docker Compose
日常项目中,一个应用往往依赖多个服务:数据库、缓存、反向代理。手动 docker run 逐个启动不仅繁琐,还容易出错。Docker Compose 用一个 YAML 文件声明整组服务,一条命令完成编排:
docker compose up -d # 后台启动全部服务
docker compose logs -f # 跟踪日志
docker compose down # 停止并清理
核心配置示例
一个典型的 Web + PostgreSQL + Nginx 架构:
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_PASSWORD: "DB_PASSWORD"
volumes:
- pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
app:
build: .
depends_on:
db:
condition: service_healthy
nginx:
image: nginx:1.27-alpine
ports:
- "80:80"
depends_on:
- app
volumes:
pg_data:
关键要点
- depends_on + healthcheck:保证启动顺序,避免应用连不上数据库。
- 命名卷(volumes):持久化数据,
docker compose down不会删除。 - 环境变量插值:敏感信息放
.env,不要写死在文件里。 - 仅暴露入口:内网服务不写
ports,通过服务名互访(内置 DNS)。
常用命令速查
| 命令 | 说明 |
|---|---|
docker compose up -d --build | 重新构建并启动 |
docker compose ps | 查看服务状态 |
docker compose exec app sh | 进入容器 |
docker compose logs -f app | 跟踪某服务日志 |
小结
Compose 是本地开发与单机部署的利器。记住三板斧:声明式配置、健康检查、数据卷持久化,就能覆盖绝大多数场景。