Docker Compose 完全指南:多容器编排实战

详细介绍 Docker Compose 的使用方法,包括服务编排、网络配置、数据卷管理。

DevOps 2026-06-22 10 分钟

Docker Compose 完全指南:多容器编排实战

Docker Compose 用于编排多容器应用。本文介绍 Docker Compose 的使用方法。

基本语法

# docker-compose.yml
version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    depends_on:
      - api

  api:
    build: .
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=mysql
    depends_on:
      - mysql

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: mydb
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

常用命令

# 启动所有服务
docker-compose up -d

# 停止所有服务
docker-compose down

# 查看日志
docker-compose logs -f

# 重新构建
docker-compose build

# 扩展服务
docker-compose up -d --scale api=3

网络配置

services:
  web:
    networks:
      - frontend
  api:
    networks:
      - frontend
      - backend
  mysql:
    networks:
      - backend

networks:
  frontend:
  backend:

数据卷

services:
  mysql:
    volumes:
      - mysql-data:/var/lib/mysql
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql

volumes:
  mysql-data:

环境变量

services:
  api:
    environment:
      - DB_HOST=mysql
      - DB_PORT=3306
    env_file:
      - .env

健康检查

services:
  mysql:
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 3

最佳实践

  1. 使用 .env 文件:管理敏感信息
  2. 健康检查:确保服务可用
  3. 网络隔离:不同服务使用不同网络
  4. 数据持久化:使用数据卷

总结

Docker Compose 简化了多容器应用的管理。通过 YAML 配置文件,可以轻松编排复杂的应用架构。

📚 相关文章