技術文章 · IT 指令工具箱

Docker Compose 指令:啟動、重建、Log、Profile 與健康檢查

整理 docker compose config、up、down、pull、build、logs、exec、run、profiles、scale 與環境變數排查。

作者 Steve Chen · 發布  · 約 5 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

Compose 適合把多個服務、網路與 volume 寫成可重建的設定。正式啟動前先用 docker compose config 檢查合併後的結果,因為 override、profile 與環境變數都可能改變實際部署。

24 組範例Docker Compose v2Docker Desktop查核日期:2026-08-11
動手前:docker compose down -v 會移除具名與匿名 volume,可能直接刪資料;本頁不把它當一般清理指令。環境變數展開後的 config 可能含秘密,勿貼到公開工單。

檢查與啟動

驗證並顯示合併後設定Compose v2

docker compose config

先確認 services、ports、volumes 與展開後變數。

只做設定驗證Compose v2

docker compose config --quiet

成功時通常沒有輸出,適合 CI。

列出服務名稱Compose v2

docker compose config --services

可確認 profile 與多檔案合併後有哪些服務。

背景啟動Compose v2

docker compose up -d

會依設定建立或更新服務。

先拉 image 再啟動Compose v2

docker compose pull && docker compose up -d

正式環境先看 release notes 與備份,不能只因有新 image 就升。

只啟動指定服務Compose v2

docker compose up -d web

相依服務是否一起啟動取決於 depends_on 與參數。

重新 build 後啟動Compose v2

docker compose up -d --build web

build context 與 cache 需先確認。

不重建容器啟動Compose v2

docker compose up -d --no-recreate

設定或 image 有變時不會套用。

狀態、Log 與容器內操作

查看服務狀態Compose v2

docker compose ps

包含 service、container、status 與 ports。

查看全部 logCompose v2

docker compose logs --tail 100

多服務會加前綴。

追指定服務 logCompose v2

docker compose logs -f --since 10m web

按 Ctrl+C 不會停止服務。

在服務容器內執行命令Compose v2

docker compose exec web nginx -t

服務必須正在執行。

開互動 shellCompose v2

docker compose exec web sh

不要在容器內做無法重建的正式變更。

跑一次性 migrationCompose v2

docker compose run --rm app ./manage.py migrate --check

先用唯讀 check;正式 migration 需備份與維護流程。

查看執行中的程序Compose v2

docker compose top

可發現重複 worker 或錯誤 entrypoint。

列出已使用 imagesCompose v2

docker compose images

比對實際 image ID,不只看 tag。

更新、Profile 與停止

查看設定差異前保存快照Compose v2

docker compose config > compose-resolved.yml

檔案可能含秘密,限制權限且不要提交。

啟動指定 profileCompose v2

docker compose --profile monitoring up -d

profile 內服務才會啟動。

調整無狀態 worker 數量Compose v2

docker compose up -d --scale worker=3

服務不能使用固定 container_name,並要確認工作可並行。

重啟單一服務Compose v2

docker compose restart web

不會套用 compose 檔設定變更。

停止但保留容器Compose v2

docker compose stop

之後可 start;volume 與 network 保留。

重新啟動已停止服務Compose v2

docker compose start

不會重新建立或拉新 image。

移除服務容器與預設 networkCompose v2

docker compose down

預設不刪具名 volume,但仍先確認實際設定。

移除孤兒容器Compose v2

docker compose down --remove-orphans

先用 compose ps 確認所謂 orphan 不是仍需保留的舊服務。

怎麼確認有做對

  • 啟動後看 compose ps、health、log 與實際 HTTP/資料庫查詢。
  • 比對 image ID 與預期版本,確認不是舊快取。
  • 升級前後各保存 resolved config,但妥善保護其中秘密。

常見錯誤

  • 使用舊版 docker-compose 與新版 docker compose 指令混寫。
  • 把 restart 當成會套用新設定。
  • 未備份便使用 down -v。
  • 只看容器啟動,沒等 health 與 migration。

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

聯絡廷皓討論 看更多文章