docker network prune 专门清理用户创建且无任何容器连接的自定义网络,不删除bridge、host、none等默认网络;执行前需用docker network ls和inspect确认Containers字段为空,推荐与container prune、image prune按序组合使用。

docker network prune 是专门用来清理“孤儿网桥”的命令——也就是那些你手动创建(docker network create mynet)、但当前没有任何容器连接的自定义网络。它不会碰默认网络(bridge、host、none),安全边界清晰,适合日常维护。
它到底删哪些网络?
只删满足两个条件的自定义网络:
- 由用户显式创建(比如
docker network create app-net) - 当前没有任何运行中或已停止的容器 attach 到它上面
注意:bridge、host、none 这三个系统网络永远不在此列,无论是否空闲都不会被删。
执行前先确认现状
运行以下命令查看当前所有网络及使用情况:
docker network ls
再对疑似闲置的网络做深度检查:
docker network inspect mynet
重点看输出中的 Containers 字段:如果为空对象 {},说明该网络确实无容器连接,可放心清理。
一键清理操作与注意事项
基础用法(带确认提示):
docker network prune
终端会列出待删网络并要求输入 y 确认。
自动化脚本常用写法(跳过交互):
docker network prune -f
常见误删场景提醒:
- 容器启动时没加
--network mynet,而是用了默认bridge,那mynet就会被判为闲置 - 多个容器本该共用一个网络,但你先批量
docker stop所有容器,再执行prune,网络就没了
配合其他清理更彻底
孤儿网桥常和悬挂镜像、停止容器一起出现。推荐组合执行(顺序很重要):
- 先删已停止容器:
docker container prune -f - 再删悬挂镜像:
docker image prune -f - 最后清理网络:
docker network prune -f
这样能避免因容器残留导致网络“假活跃”,让 prune 更准确识别真正闲置的资源。


















