You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora 33与Docker环境下无法彻底删除网络网桥的问题排查求助

解决Docker残留网桥重启后重现的问题

你的问题根源很明确:这些残留的br-*网桥之所以删了又回来,是因为Docker daemon的底层网络元数据没有被彻底清理。当你删除网桥但没清理Docker的网络数据库时,重启Docker服务会读取残留的元数据,自动重新创建这些网桥。

为什么常规命令没用?

  • docker network prune和docker system prune只清理Docker CLI能识别的网络,那些已经从CLI中消失但仍存在于底层数据库的网络,这些命令碰不到。
  • 直接删除网桥(ip link del/brctl delbr)只是删除了系统层面的网络设备,但Docker daemon重启后会根据本地存储的网络配置重新生成它们。

彻底解决的步骤

按顺序执行以下操作,确保彻底清理残留数据:

  1. 先停止Docker服务(必须先停,否则删了网桥会被daemon立刻重建):

    sudo systemctl stop docker
    
  2. 备份Docker网络数据(以防万一,出问题可以恢复):

    sudo cp -r /var/lib/docker/networks /var/lib/docker/networks_backup
    
  3. 清理Docker的底层网络元数据:
    Docker的网络配置都存在/var/lib/docker/networks/目录下,删除这里的所有内容(默认的bridge/host/none网络会在Docker重启时自动重建):

    sudo rm -rf /var/lib/docker/networks/*
    
  4. 删除系统中所有残留的br-*网桥:
    用批量命令一次性删除所有残留网桥:

    for br in $(brctl show | grep br- | awk '{print $1}'); do sudo ip link del $br; done
    
  5. 重启Docker服务:

    sudo systemctl start docker
    

验证修复效果

执行完后分别检查:

  • docker network ls:应该只显示默认的bridge、host、none网络
  • brctl show:应该只有docker0网桥,没有其他br-*设备

这时再尝试创建你的自定义网络:

docker network create --subnet 172.18.128.0/17 si

应该就能正常创建了。

额外注意事项

  • 如果你之前用firewalld给这些网桥配置过规则,可以清理firewalld的残留配置,但根据你的描述,这一步不是必须的。
  • 以后删除Docker网络时,尽量用docker network rm <NETWORK_ID/NAME>,避免强制停止Docker导致元数据残留。

内容的提问来源于stack exchange,提问作者ptschack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 18:37:46