name: docker-compose-basics user-invocable: false description: 使用 Docker Compose YAML 配置来定义和运行多容器 Docker 应用程序。 allowed-tools: []
Docker Compose 基础
Docker Compose 用于定义和运行多容器应用程序。
基本结构
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
environment:
- NGINX_HOST=localhost
depends_on:
- api
api:
build: ./api
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://db:5432/myapp
depends_on:
- db
db:
image: postgres:15
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: secret
POSTGRES_DB: myapp
volumes:
pgdata:
常用命令
# 启动服务
docker compose up
# 后台启动
docker compose up -d
# 停止服务
docker compose down
# 查看日志
docker compose logs -f
# 重新构建
docker compose build
# 执行命令
docker compose exec web sh
# 扩展服务
docker compose up -d --scale api=3
最佳实践
环境变量
services:
api:
environment:
- NODE_ENV=${NODE_ENV:-development}
- API_KEY=${API_KEY}
健康检查
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
资源限制
services:
api:
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M