Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

Docker 顯示網路有 active endpoints?刪除前先查清每個擁有者

鎖定確切網路 ID,納入已停止容器,並把標籤映射到所屬 Compose 專案或 Swarm 服務。先處理擁有者,再核驗同一個網路 ID。

將 Docker 網路身分映射到容器、Compose 或 Swarm 擁有者的原創圖。
原創示意圖:先識別網路、endpoint 擁有者與動作。 Watch at Ease

「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。

分開 standalone、Compose、Swarm 與 teardown 競態的原創決策圖。
原創示意圖:在擁有權邊界修復。 Watch at Ease