3.3 Compose 常用命令详解
Docker Compose 通过一系列命令高效管理多容器应用。理解这些命令,可以让你灵活地启动、停止、查看、调试、扩缩容和配置 Compose 项目。
一、核心命令详解
1. docker compose up
- 功能:启动并构建所有服务,生成网络和卷。
- 用法:
docker compose up # 前台模式,日志直接输出到终端 docker compose up -d # 分离(detach)模式,后台运行
- 常用参数:
--build
:启动前强制重新构建镜像--force-recreate
:强制重建容器--remove-orphans
:删除未在配置文件中的容器
2. docker compose down
- 功能:停止并删除所有容器、网络和默认卷(不删除数据卷,除非加参数)
- 用法:
docker compose down docker compose down -v # 同时删除卷
3. docker compose restart
- 功能:重启所有服务(先 stop 后 start)
- 用法:
docker compose restart docker compose restart <服务名>
4. docker compose stop
与 docker compose start
stop
:停止所有服务(容器保留,不会被删)docker compose stop
start
:启动已停止的服务(不重新创建容器)docker compose start
5. docker compose ps
- 功能:查看当前 Compose 项目的服务及状态
- 用法:
docker compose ps
6. docker compose logs
- 功能:查看所有服务的日志,支持跟踪
- 用法:
docker compose logs # 查看全部日志 docker compose logs -f # 跟踪实时日志 docker compose logs <服务名> # 查看指定服务
7. docker compose exec
- 功能:在运行中的容器内执行命令(类似 docker exec)
- 用法:
docker compose exec <服务名> <命令> # 例:进入 web 容器 docker compose exec web sh
8. docker compose build
- 功能:根据 Compose 文件的 build 条目构建服务镜像
- 用法:
docker compose build docker compose build <服务名>
9. docker compose config
- 功能:验证、预览和合成实际的 Compose 配置
- 用法:
docker compose config
- 作用:检查语法,展示变量展开后的完整配置,调试合并多 Compose 文件的最终效果。
二、detach 模式与前台模式
1. 前台模式
- 默认运行方式,日志直接输出到终端。
- 可实时查看所有服务日志,适合开发和调试。
- 终端关闭会终止所有容器。
2. detach(分离)模式
- 加
-d
参数后,Compose 会在后台启动服务。 - 适合生产、集成测试等无需实时查看日志的场景。
- 需用
docker compose logs
查看日志。
三、服务扩展与缩容(scale)
1. 临时扩/缩容
- 用
--scale
参数指定某服务副本数(仅适用于无状态服务)docker 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)。
六、官方文档
- Compose 命令参考
- Compose v2 使用指南