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
最佳实践
- 使用 .env 文件:管理敏感信息
- 健康检查:确保服务可用
- 网络隔离:不同服务使用不同网络
- 数据持久化:使用数据卷
总结
Docker Compose 简化了多容器应用的管理。通过 YAML 配置文件,可以轻松编排复杂的应用架构。