3.3 Compose 常用命令详解
Docker Compose 通过一系列命令高效管理多容器应用。理解这些命令,可以让你灵活地启动、停止、查看、调试、扩缩容和配置 Compose 项目。
一、核心命令详解
1. docker compose up
-
功能:启动并构建所有服务,生成网络和卷。
-
用法:
bashdocker compose up # 前台模式,日志直接输出到终端 docker compose up -d # 分离(detach)模式,后台运行 -
常用参数:
--build:启动前强制重新构建镜像--force-recreate:强制重建容器--remove-orphans:删除未在配置文件中的容器
2. docker compose down
-
功能:停止并删除所有容器、网络和默认卷(不删除数据卷,除非加参数)
-
用法:
bashdocker compose down docker compose down -v # 同时删除卷
3. docker compose restart
-
功能:重启所有服务(先 stop 后 start)
-
用法:
bashdocker compose restart docker compose restart <服务名>
4. docker compose stop 与 docker compose start
-
stop:停止所有服务(容器保留,不会被删)bashdocker compose stop -
start:启动已停止的服务(不重新创建容器)bashdocker compose start
5. docker compose ps
-
功能:查看当前 Compose 项目的服务及状态
-
用法:
bashdocker compose ps
6. docker compose logs
-
功能:查看所有服务的日志,支持跟踪
-
用法:
bashdocker compose logs # 查看全部日志 docker compose logs -f # 跟踪实时日志 docker compose logs <服务名> # 查看指定服务
7. docker compose exec
-
功能:在运行中的容器内执行命令(类似 docker exec)
-
用法:
bashdocker compose exec <服务名> <命令> # 例:进入 web 容器 docker compose exec web sh
8. docker compose build
-
功能:根据 Compose 文件的 build 条目构建服务镜像
-
用法:
bashdocker compose build docker compose build <服务名>
9. docker compose config
-
功能:验证、预览和合成实际的 Compose 配置
-
用法:
bashdocker compose config -
作用:检查语法,展示变量展开后的完整配置,调试合并多 Compose 文件的最终效果。
二、detach 模式与前台模式
1. 前台模式
- 默认运行方式,日志直接输出到终端。
- 可实时查看所有服务日志,适合开发和调试。
- 终端关闭会终止所有容器。
2. detach(分离)模式
- 加
-d参数后,Compose 会在后台启动服务。 - 适合生产、集成测试等无需实时查看日志的场景。
- 需用
docker compose logs查看日志。
三、服务扩展与缩容(scale)
1. 临时扩/缩容
-
用
--scale参数指定某服务副本数(仅适用于无状态服务)bashdocker compose up -d --scale web=3 -
支持单独对某个服务扩容
2. docker compose scale(已废弃)
- 旧版 Compose 支持
docker-compose scale,v2 推荐用--scale。
3. 持久扩缩容
- 推荐直接在
docker-compose.yml的deploy.replicas字段设置(Swarm/K8s 有效)。
四、命令速查表
| 功能 | 命令示例 | 说明 |
|---|---|---|
| 启动服务 | docker compose up [-d] |
后台加 -d |
| 停止并清理 | docker compose down |
停止并删除容器/网络 |
| 重启服务 | docker compose restart |
|
| 停止服务 | docker compose stop |
|
| 启动已停服务 | docker compose start |
|
| 查看状态 | docker compose ps |
|
| 查看日志 | docker compose logs -f |
实时跟踪日志 |
| 容器内命令 | docker compose exec web sh |
进入 web 容器 |
| 构建镜像 | docker compose build |
|
| 配置预览 | docker compose config |
展开与校验配置 |
| 服务扩容 | docker compose up --scale web=3 -d |
web扩3副本 |
五、补充说明
docker compose run可运行一次性任务(如数据库迁移),不会自动加端口映射和依赖服务。docker compose rm删除已退出的服务容器。- 配合多 Compose 文件(
-f)可实现多环境管理。 - 推荐用
docker compose(v2)替代docker-compose(v1)。