关键在于删除三类残留:Docker网络对象(如/var/lib/docker/network)、内核网桥(docker0、br-xxx)及关联规则(iptables、systemd-networkd配置),否则重装会报“network already exists”或容器无法联网。

清理 Docker 残余的网络配置文件,关键在于识别并删除三类残留:Docker 自动创建的网络对象、系统级网络接口(如 `docker0`、`br-` 网桥)、以及可能遗留的 systemd 网络服务或防火墙规则。这些不会随常规卸载自动清除,常导致重装后报错“network already exists”或容器无法联网。
确认并删除 Docker 管理的网络对象
即使 Docker 服务已停、软件已卸载,`/var/lib/docker/network/files/` 和运行时数据库中的网络定义仍可能残留。执行前确保 Docker 已完全停止:
- 运行 sudo systemctl stop docker docker.socket containerd(若服务尚存)
- 用 sudo find /var/lib/docker -name "network" -type d 2>/dev/null 定位网络数据目录
- 手动清空:sudo rm -rf /var/lib/docker/network
- 若曾用
docker network create创建过自定义网络,其元数据也藏在此处,一并清除可避免重装后冲突
移除内核级网桥与虚拟接口
Docker 默认创建的 `docker0` 网桥、以及通过 `docker network create --driver bridge` 生成的 `br-xxxx` 接口,在卸载后仍存在于内核中,可用 ip link 或 brctl show 查看:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
- 列出所有桥接接口:ip link show | grep -E "(docker0|br-)"
- 逐一删除(需 root 权限):sudo ip link delete docker0、sudo ip link delete br-xxxx
- 若提示 “Device is busy”,说明有残留进程或 iptables 规则在引用,先执行 sudo pkill -f 'docker|containerd' 再试
清理关联的网络规则与服务
残余网络还可能体现在 iptables 链、nftables 规则或 systemd-networkd 配置中:
- 检查 Docker 相关 iptables 链:sudo iptables -t nat -L DOCKER 2>/dev/null || echo "无 DOCKER 链";如有,运行 sudo iptables -t nat -F DOCKER && sudo iptables -t nat -X DOCKER
- 查看是否启用 systemd-networkd 的 Docker 配置:ls /etc/systemd/network/*docker*,存在则 sudo rm -f /etc/systemd/network/*docker*
- 重启网络管理器生效:sudo systemctl restart systemd-networkd 2>/dev/null || sudo systemctl restart networking
清理完成后,运行 ip link show | grep -E "(docker0|br-)" 和 sudo iptables -t nat -L | grep -i docker 应无输出。此时网络层已回归“干净状态”,重装 Docker 不会复用旧网桥或规则。

















