Docker Compose 快速入门与常用命令

小飞兽 Linux 447 次阅读 2026-07-23

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=secret123

services:
app:
image: myapp:${TAG}
container_name: ${COMPOSE_PROJECT_NAME}-app