清理 Docker 残留网络:解决 ifconfig 中陌生的网桥接口

最近在服务器上查看网络配置,发现 ifconfig 里多了两个陌生的网桥接口:

br-112c7faa4714 br-8f522120d6b1

不记得自己创建过这些。查了一下,原来是 Docker 留下的”网络垃圾”。

发生了什么?

用 Docker Compose 跑过容器后,即使容器已经删除了,Docker 网络可能还留着。

比如之前部署 n8n,用 docker-compose up -d 会自动创建两个网络:

  • n8n_default
  • n8n_n8n-network

后来 n8n 容器不跑了,但这两个网络还在系统里拖着,网桥接口自然就出现了。

怎么查看?

# 查看所有 Docker 网络
docker network ls

# 查看具体网络的连接情况
docker network inspect <网络名>

Containers 字段,如果是空的 {},说明没有容器连这个网络了:

"Containers": {}

怎么清理?

# 删除指定网络
docker network rm n8n_n8n-network
docker network rm n8n_default

删掉之后,ifconfig 里那些陌生的网桥接口就消失了。

更好的习惯

下次用 docker-compose down 的时候,加 --remove-orphans 参数:

docker-compose down --remove-orphans

这样会顺便把 Compose 创建的网络一起清理掉,避免留下垃圾。

一键清理脚本

如果想偷懒,可以定期跑这个,清理所有未使用的网络:

docker network prune -f

会删除所有没有被容器使用的网络。

一句话总结:容器删了不等于网络会删,定期 docker network prune 能让服务器干净点。


RSSHub 安装笔记