Compose 適合把多個服務、網路與 volume 寫成可重建的設定。正式啟動前先用 docker compose config 檢查合併後的結果,因為 override、profile 與環境變數都可能改變實際部署。
檢查與啟動
驗證並顯示合併後設定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 webbuild 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 -dprofile 內服務才會啟動。
調整無狀態 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 或系統內建說明確認,再以當版官方文件為準。