Docker 日常操作 SOP¶
核心機制:以 compose 為中心的容器生命周期管理¶
Docker 日常操作圍繞四個階段展開:服務管理(啟動/停止/重啟)、排障(logs/exec/inspect)、資源管理(volume/network)、清理(prune)。所有操作以 docker compose 為優先接口,bare container 指令僅用於特定情境。
容器管理¶
查看與狀態¶
docker ps # 只看執行中容器
docker ps -a # 查看所有(含停止)
docker inspect <container> # 完整詳細資訊(設定/env/mount)
啟動 / 停止 / 重啟¶
docker start <container>
docker stop <container>
docker restart <container>
docker kill <container> # 強制終止(僅用於卡死情境)
Compose 服務管理¶
docker compose up -d # 啟動所有服務
docker compose down # 停止所有服務
docker compose restart <service> # 單一服務重啟
docker compose stop <service> # 單一服務停止
docker compose up -d <service> # 單一服務啟動(含重建需求)
需要重建(image / Dockerfile 變更時):
docker compose up -d --build <service>
強制重建(容器狀態髒,需要乾淨重來):
docker compose rm -sf <service>
docker compose up -d <service>
Logs / Debug 標準流程¶
docker compose logs <service> # 查看服務日誌
docker compose logs -f <service> # 即時追蹤
docker logs --tail 200 <container> # 查看最後 200 行
docker exec -it <container> /bin/bash # 進入容器(bash 環境)
docker exec -it <container> /bin/sh # 進入容器(sh 環境)
docker inspect <container> # 查看設定 / env / mount
Volume 管理¶
Volume 是資產,操作需謹慎:
docker volume ls # 列出所有 volume
docker volume inspect <volume> # 查看 volume 詳細資訊
清理(高風險):
docker volume prune # 清除未使用的 volume
docker volume prune
- 操作前必須確認哪些 volume 存什麼資料
Network 管理¶
docker network ls # 列出所有 network
docker network inspect <network> # 查看 network 詳細資訊
變更與重啟策略¶
允許單獨重啟的服務:明確列出的服務(如 web frontend、worker)
不建議單獨重啟的服務:需標註原因(如資料庫、有狀態服務)
重啟前檢查: - [ ] 確認受影響的服務清單 - [ ] 確認依賴關係
重啟後驗證: - [ ] curl healthcheck / UI / 指標
清理規則¶
可以做:
docker system df # 查看磁碟使用量
docker image prune # 清除未使用的 image
禁止(除非非常確定):
docker system prune -a --volumes # 危險!清除所有未使用資源(含 volumes)
版本管理¶
docker version
docker compose version
記錄版本快照有助於排障時確認是否為版本相容問題。