跳轉到

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
- prod 環境原則禁用 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

記錄版本快照有助於排障時確認是否為版本相容問題。