0

0

veth 接口残留的 docker network prune 与 containerd 清理

舞姬之光

舞姬之光

发布时间:2026-01-28 19:23:46

|

995人浏览过

|

来源于php中文网

原创

docker network prune 删不掉 veth 接口,因为它只清理未被引用的用户自定义网络元数据,不调用 CNI 插件,也不处理内核层 veth 设备;残留通常源于容器异常退出导致 CNI DEL 操作未执行。

veth 接口残留的 docker network prune 与 containerd 清理

docker network prune 为什么删不掉 veth 接口

因为 docker network prune 只清理「未被任何容器引用」的用户自定义网络(bridge、overlay 等),它完全不触碰默认 bridge 网络,也不管内核层面的 veth 设备。这些接口残留通常来自异常退出的容器、docker kill -9 强杀、或 containerd 没有正确回调 CNI 插件释放资源。

常见现象是:ip link show 里一堆 vethxxxxxx@if2,但 docker ps -adocker network ls 都看不到对应容器或网络。

  • 根本原因:CNI 插件(如 bridge)在容器销毁时负责执行 DEL 操作解绑并删除 veth,但 containerd 或 dockerd 进程崩溃、OOM kill、或 CNI 超时失败都会导致这步跳过
  • docker network prune 不调用 CNI,只是删 Docker 内存/磁盘里的网络对象记录,属于“元数据清理”,不是“设备清理”
  • 默认 docker0 网桥上的 veth 更不会动——它由 Docker daemon 启动时创建,生命周期绑定 daemon 进程

containerd 场景下如何安全清理残留 veth

containerd 的容器生命周期由 ctrcrictl 管理,其网络释放依赖 netns 文件是否存在 + CNI DEL 执行成功。若 netns 已销毁但 veth 还挂着,说明 CNI 没收到通知或执行失败。

手动清理前先确认:该 veth 是否真无主(没被任何 netns 持有、没被 iptables/ebtables 引用、没被 tc/qdisc 绑定):

  • 查归属:readlink /sys/class/net/vethabc123/nameif(若返回 No such file,说明 netns 已消失)
  • 查引用:ls -l /sys/class/net/vethabc123/master(若有输出,表示还连着网桥,不能直接删)
  • 查 netns 关联:grep -l "vethabc123" /proc/*/net/ns(无结果才可删)

确认无主后,用 ip link delete vethabc123 删除。不要用 ifconfig vethxxx down && ifconfig vethxxx delete——老式 ifconfig 不支持 veth 删除。

自动化清理脚本要注意的三个坑

网上流传的 “一键清空所有闲置 veth” 脚本容易误删,关键在判断逻辑是否严谨:

Faceswap
Faceswap

免费开源的AI换脸工具

下载
  • 不能只靠名字匹配 veth 前缀——有些自建 CNI 或 SR-IOV 驱动也会创建 veth 开头的设备,它们有业务意义
  • 不能跳过 master 检查——直接删正在桥接中的 veth 会导致宿主机网络抖动甚至断连
  • containerd + nerdctl 场景下,/run/containerd/io.containerd.runtime.v2.task/k8s.io/xxx/rootfs 下的 netns 可能残留,得配合 nsenter -n -t PID ip link 核对,否则脚本会漏判

推荐最小化检查命令组合:

ip -br link | awk '$1 ~ /^veth/ && $NF == "DOWN" {print $1}' | while read dev; do
[ ! -e "/sys/class/net/$dev/master" ] && ip link delete "$dev"
done

重启 containerd 能不能顺带清掉 veth

不能。containerd 本身不持有或管理 veth 设备,它只通过 CNI 插件间接调用。重启 containerd 后,已残留的 veth 依然挂在内核里,且没有自动回收机制。

唯一例外是:如果容器对应的 netns 文件还在 /proc/PID/ns/net 下,且你用 nsenter 进入后执行 ip link 能看到该 veth,那说明这个 netns 实际上还活着(比如进程僵死但没退出),此时应先 kill -9 PID 再删设备。

真正有效的兜底方式只有两个:手动按上述步骤删,或重启宿主机(强制释放所有 netns 和关联设备)。后者在生产环境显然不可取,所以重点还是把清理逻辑做细——尤其是 masternetns 的双重校验,少一步都可能让问题从“网络杂乱”升级成“业务断网”。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1100

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

189

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1554

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

18

2026.01.19

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

396

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

469

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

13

2025.12.06

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

157

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

Docker 17 中文开发手册
Docker 17 中文开发手册

共0课时 | 0人学习

极客学院Docker视频教程
极客学院Docker视频教程

共33课时 | 17.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号