彻底重置 docker bridge 网络需停止服务、删除 docker0 及所有残留网桥、清空 /var/lib/docker/network 目录、还原 daemon.json 配置,再重启 docker,使其自动重建默认 docker0(172.17.0.1/16)并恢复标准容器联网行为。
要彻底清理并重置 docker 的 bridge 网络状态,核心是清除残留的网桥设备、网络元数据和守护进程配置影响,让 docker 重启后像首次安装一样自动重建干净的 docker0。这不是简单删容器或运行 docker network prune 能解决的——那些只清理上层逻辑,不碰底层网桥和初始化状态。
停止服务并卸载所有网桥设备
先确保 Docker 完全停止,再手动清理系统级网桥接口:
- 执行
sudo systemctl stop docker - 关闭并删除所有已存在的网桥:
sudo ip link set dev docker0 down,然后sudo brctl delbr docker0 - 如果有其他残留网桥(如
br-xxxx),一并用brctl delbr删除 - 运行
ip link show | grep bridge确认无任何bridge类型接口残留
清除网络元数据目录
Docker 启动时会从 /var/lib/docker/network/ 加载网络状态。若该目录存在旧配置(比如异常的网络 ID 或缓存),会导致初始化失败或复用错误子网:
- 执行
sudo rm -rf /var/lib/docker/network - 如果你自定义过
data-root(例如在/home/user/docker_data),请同步清空其下的network子目录 - 注意:此操作不影响镜像、容器、卷等其他数据,仅重置网络模块的持久化状态
还原 daemon.json 配置
检查 /etc/docker/daemon.json 是否含有干扰默认行为的字段:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
- 删除或注释掉
"bridge"(如"bridge": "none"或"bridge": "bridge0") - 删除或注释掉
"bip"(如"bip": "172.17.5.1/24"),除非你明确需要固定子网 - 确保文件是合法 JSON,无语法错误;如果整个文件只是干扰项,可直接备份后删除
重启并验证默认网桥是否重建成功
完成上述步骤后启动 Docker,并确认恢复出厂式 bridge 行为:
- 运行
sudo systemctl start docker - 检查
docker0是否存在且 UP:ip addr show docker0(应看到 IP 为172.17.0.1/16) - 运行
docker info | grep "Bridge:",输出应为Bridge: docker0 - 启动一个新容器:
docker run --rm alpine ip route | grep default,应显示默认网关指向172.17.0.1
这样就完成了 bridge 网络的彻底清理与重置。之后所有新容器将回归默认行为:自动接入 docker0、获取 172.17.0.0/16 子网 IP、支持端口映射,且不依赖任何手动配置。










