docker 列出目前沒有被用的虛擬網路和網域IP

要同時列出 目前沒有被容器使用的 Docker 虛擬網路,以及它們的 網域 IP (subnet/gateway),可以用以下方式:


🛠️ 一步到位的指令


docker network ls -q | \
xargs -n1 docker network inspect --format '{{.Name}} {{len .Containers}} {{range .IPAM.Config}}{{.Subnet}} {{.Gateway}}{{end}}' | \
awk '$2==0 {print $1 "\t" $3 "\t" $4}'

解釋:

  • docker network ls -q → 取得所有網路 ID
  • docker network inspect → 檢查每個網路的容器數量與 IPAM 設定
  • {{.Name}} → 網路名稱
  • {{len .Containers}} → 使用中的容器數量
  • {{.Subnet}} {{.Gateway}} → 網段與 gateway IP
  • awk '$2==0 …' → 篩選出容器數量為 0 的網路

📋 範例輸出

假設有幾個未使用的網路,結果可能會像這樣:

br-3c618673992d    172.18.0.0/16    172.18.0.1
br-9058c2f1ace6    172.20.0.0/16    172.20.0.1
br-c958e37aeeb8    172.19.0.0/16    172.19.0.1

這表示:

  • br-3c618673992d → 網段 172.18.0.0/16,gateway 172.18.0.1,目前沒有容器使用
  • 其他列出的網路同理

🧹 清理未使用的網路

如果確認這些網路都不需要,可以直接清理:

docker network prune

它會刪掉所有沒有容器使用的網路。


👉 要不要我幫你整理一個 「查詢 vs 清理」的對照表,讓你快速決定是只檢查還是直接刪掉?

Also See

File12FileLast Modified
避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路2:24 PM - January 12, 2026
讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用2:24 PM - January 12, 2026
要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響2:24 PM - January 12, 2026
要建立並在背景執行一個 Docker Compose要建立並在背景執行一個 Docker Compose2:24 PM - January 12, 2026
完整移除一個 Docker container完整移除一個 Docker container2:24 PM - January 12, 2026
完整停止一個 Docker Compose完整停止一個 Docker Compose2:24 PM - January 12, 2026
停止一個正在執行的 Docker container停止一個正在執行的 Docker container2:24 PM - January 12, 2026
Windows containersWindows containers2:24 PM - January 12, 2026
portainer container unreachable問題portainer container unreachable問題2:24 PM - January 12, 2026
docker列出 所有容器的網域 (network) 與 IP 位址docker列出 所有容器的網域 (network) 與 IP 位址2:24 PM - January 12, 2026
Docker 容器管理速查表Docker 容器管理速查表2:24 PM - January 12, 2026
Docker 容器的 虛擬 IP 固定Docker 容器的 虛擬 IP 固定2:24 PM - January 12, 2026