科技 · 實用指南
Docker 顯示網路有 active endpoints?刪除前先查清每個擁有者
鎖定確切網路 ID,納入已停止容器,並把標籤映射到所屬 Compose 專案或 Swarm 服務。先處理擁有者,再核驗同一個網路 ID。

「Network has active endpoints」表示 Docker 仍在確切網路物件上看到至少一個連線,可能來自執行中或已停止容器、另一個 Compose 專案,或會重建 task 的 Swarm 服務。
不要先 prune、強制斷線或重啟 daemon。記錄網路 ID、driver、scope 與標籤,列出容器,映射擁有者,再處理擁有者並核驗同一 ID。
固定確切網路身分
保存完整錯誤並用 docker network inspect 將名稱解析成一個 ID。記錄 Name、ID、Driver、Scope、Internal、Attachable、Labels,後續重用該 ID。
清理前匯出 inspect。相似名稱要比對 ID 與 Compose 標籤;production overlay 與 local bridge 的擁有者和變更窗口不同。
建立 endpoint 擁有者帳本
讀 Containers 映射並用 docker ps -a --filter network=<ID>輸出 ID、名稱、狀態、標籤與網路。停止容器不代表 endpoint 已移除。
記錄 Compose project、service、one-off 標籤;沒有時查建立方式。未知 endpoint 未經應用擁有者同意不可斷開。
改變擁有者,不是症狀
Compose 要用原 project identity 與檔案集。--remove-orphans 前檢閱目標;不在目前模型不代表可刪。external 網路由獨立擁有者決定。
Swarm 要找宣告 overlay 的 service 或 stack,依計畫更新、縮放或移除。只刪 task 容器會被 orchestrator 補回。
分離 teardown 競態與持續狀態
若失敗後同一 ID 已無 endpoint,短暫等待並確認沒有新 task,再窄化重試一次。同名新 ID 是不同物件,要重新稽核。
若同一 ID 長期為空仍報 endpoint,蒐集 daemon log、Engine 版本、driver 與重現;之後才依主機政策考慮受控重啟。
驗證健康並關閉根因
擁有者退出後重查同一 ID。只有帳本空且計畫允許才刪網路,並確認共享 external 網路與剩餘服務仍連線。
記錄 stopped container、Compose 錯配、orphan、external、Swarm、競態或 daemon/driver 根因,修對應 runbook。
