Docker Compose 快速入门与常用命令
Docker Compose 是什么?
Docker Compose 通过一个 YAML 文件定义多容器应用,用一条命令启动、停止、管理整个应用栈。相比于逐个运行 docker run,Compose 让我们可以像管理单个应用一样管理服务依赖、端口映射、网络配置和数据持久化。
快速开始
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- api
api:
image: node:18-alpine
working_dir: /app
volumes:
- ./api:/app
command: node server.js
docker compose up
docker compose up -d
docker compose down
常用命令
docker compose up
docker compose up --build
docker compose up -d
docker compose ps
docker compose logs -f api
docker compose exec api sh
docker compose stop
docker compose start
docker compose down
docker compose down --rmi local
docker compose build --no-cache
docker compose config --services常用配置项
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
image: myapp:latest
container_name: myapp-container
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
DB_HOST: db
DB_PORT: 5432
volumes:
- app-data:/app/data
- ./config:/app/config:ro
depends_on:
db:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
postgres:
image: postgres:15-alpine
volumes:
- postgres-data:/var/lib/postgresql/data
volumes:
app-data:
postgres-data:
环境变量文件
COMPOSE_PROJECT_NAME=myapp
TAG=1.0
DB_PASSWORD=secret123services:
app:
image: myapp:${TAG}
container_name: ${COMPOSE_PROJECT_NAME}-app