主题
Docker Compose
用 YAML 定义并管理多容器应用。命令优先用 docker compose(空格);旧独立包为 docker-compose。
常用命令
bash
docker compose -f compose.yml <command>
docker compose ps
docker compose up -d
docker compose up -d --build --force-recreate
docker compose build
docker compose pull
docker compose down
docker compose logs -f
docker compose exec api sh
docker compose start|stop|restartCompose 文件骨架
Compose Specification 下 version 字段已非必需。
yaml
services:
web:
build:
context: ./web
dockerfile: Dockerfile
ports:
- '8080:8080'
environment:
- API_URL=http://api:3000
volumes:
- ./web:/app
networks:
- webnet
depends_on:
- api
restart: unless-stopped
api:
image: my-api:latest
ports:
- '3000:3000'
networks:
- webnet
volumes:
db-data:
networks:
webnet:文件字段与命令参数对应关系
| Compose 字段 | docker container run |
|---|---|
image | 镜像名 |
container_name | --name |
environment | -e / --env |
env_file | --env-file |
volumes | -v / --mount |
ports | -p / --publish |
networks | --network |
restart | --restart |
command | 镜像后的命令(覆盖 CMD) |
entrypoint | --entrypoint |
working_dir | -w |
user | -u |
补充:
build:需先docker image build,没有单条run等价。depends_on:多容器启动顺序,单容器run无对应项。expose:仅声明端口,不映射到宿主机,不等于-p。
