Docker Compose
安装Docker Compose
# Docker 20.10+ 版本已内置compose插件 # 使用命令:docker compose(注意空格) # 旧版安装(如需docker-compose命令) sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker compose version
常用Compose配置示例
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://postgres:password@db:5432/myapp
depends_on:
- db
- redis
volumes:
- ./logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: myapp
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
restart: unless-stopped
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./ssl:/etc/nginx/ssl
depends_on:
- web
restart: unless-stopped
volumes:
postgres_data:
redis_data:
Compose常用命令
# 启动所有服务(后台运行) docker compose up -d # 启动特定服务 docker compose up -d web db # 查看运行状态 docker compose ps # 查看日志 docker compose logs -f # 查看特定服务日志 docker compose logs -f web # 停止服务 docker compose stop # 停止并删除容器 docker compose down # 停止并删除容器和数据卷(慎用) docker compose down -v # 重启服务 docker compose restart # 构建镜像 docker compose build # 拉取最新镜像 docker compose pull