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 使用指南