删除不再使用的网络
docker network rm 按名字删除用户自定义网络,docker network prune 批量清理没有被任何容器使用的网络。删除会被拒绝的典型情况是仍有容器(包括已停止的容器)接入该网络——接入关系不随容器停止而解除。预置的 bridge、host、none 三类网络不能删除。清理网络要放在容器清理之后,顺序反了只会得到一串报错。
基本信息
| 单个删除 | docker network rm 网络名(可一次多个) |
|---|---|
| 批量清理 | docker network prune,可加 --filter until=24h |
| 拒绝条件 | 仍有容器接入,含已停止的容器 |
| 预置网络 | bridge / host / none 不可删除 |
典型使用场景
- 项目下线后收尾:容器删完再删网络,避免端口与网段长期被占
- 排障后清理临时网络:验证用的网络留在机器上会干扰后续排查
- IP 段冲突处理:自定义网络的子网与内网规划冲突时需要重建
- 定期盘点:用 prune 清掉无人使用的网络,让 network ls 保持可读
- 迁移前的环境整理:换编排方式前把手写网络的残留清理干净
删除与清理
删除与清理
# 先看有哪些网络在用
docker network ls
docker network inspect app-net --format '{{range .Containers}}{{.Name}} {{end}}'
# 删除指定网络
docker network rm app-net
# 批量清理未被使用的网络(含已停止容器占用的不会删)
docker network prune
# 按时间过滤批量清理
docker network prune -f --filter 'until=24h'rm 与 prune 对照
| 维度 | network rm | network prune |
|---|---|---|
| 作用范围 | 指定的一个或多个网络 | 所有未被容器使用的网络 |
| 误删风险 | 低,按名字精确删除 | 较高,范围是全集 |
| 失败场景 | 有容器接入时被拒绝 | 预置与在用网络自动跳过 |
| 常用参数 | 一次传多个网络名 | -f 跳过确认,可加时间过滤 |
删除网络不会删除容器,但容器会脱离该网络的连通关系;重建网络后容器需要重新加入,静态 IP 一类配置要一并补上。
prune 不会动正在被任何容器使用的网络,所以它相对安全;真正需要警惕的是删错了后续重建时子网与网段被其他项目占用。