讲师中心 微信公众号
AI工具推荐 视频效率加速

怎么在Docker中配置容器的网络流量监控与限速实战

冬磊君_6070

冬磊君_6070

发布时间:2026-04-24 17:57:17

|

714人浏览过

|

来源于php中文网

原创

Docker容器网络监控与限速需借助Linux内核工具:先通过docker inspect获取容器IP/MAC及PID,再用ls -l /sys/class/net/veth*/address反查veth接口;出向限速推荐在宿主机veth端用tc配置HTB队列;监控可用nsenter读取/sys/class/net/eth0/statistics/{rx,tx}_bytes实时统计。

怎么在docker中配置容器的网络流量监控与限速实战

在 Docker 中配置容器网络流量监控与限速,不能靠 docker run 原生命令直接完成,必须借助 Linux 内核原生工具(tc、nsenter、iptables 或 sysfs 接口),配合容器的网络命名空间操作。核心逻辑是:先定位容器在宿主机上的虚拟网卡(veth),再进入其网络命名空间施加控制或读取统计。

快速定位容器对应的 veth 接口和 PID

每个容器在 bridge 网络下都会在宿主机生成一对 veth 设备,一端挂载到 docker0,另一端接入容器内部。要操作它,需两步:

  • 查容器 IP 和 MAC:docker inspect <container_name> | grep -A 5 "NetworkSettings"</container_name>
  • 用 MAC 反查 veth 名称:ls -l /sys/class/net/veth*/address 2>/dev/null | grep <mac_address></mac_address>,输出类似 /sys/class/net/vethabcd12/address,其中 vethabcd12 就是目标接口
  • 获取容器进程 PID:docker inspect -f '{{.State.Pid}}' <container_name></container_name>,假设返回 12345

对出向流量(egress)做限速(推荐方式)

限速最稳定、易管理的方式是在宿主机上对 veth 的主机端配置 tc。它只影响容器发往外部的流量(上传/响应),无需容器内安装工具或提权。

  • 加载 HTB 队列:tc qdisc add dev vethabcd12 root handle 1: htb default 30
  • 添加限速类(例如 2Mbps):tc class add dev vethabcd12 parent 1: classid 1:1 htb rate 2mbit
  • 将所有容器出口流量导向该类:tc filter add dev vethabcd12 protocol ip parent 1:0 prio 1 u32 match ip src <container_ip>/32 flowid 1:1</container_ip>

注意:此配置作用于宿主机网络命名空间,容器重启后不会自动恢复,建议写成脚本或配合容器启动钩子调用。

Docker Encyclopedia
Docker Encyclopedia

Docker 文档优先工作流:针对 Docker 特定问题、故障排除、命令规划、镜像/构建、容器/运行时操作及 Compose 等

下载

轻量级实时流量监控(不依赖额外服务)

无需部署 vnStat 或 Prometheus,直接读取内核暴露的网卡统计文件即可获得精确字节数:

  • 查容器内 eth0 接收字节数(下行/下载):nsenter -t 12345 -n cat /sys/class/net/eth0/statistics/rx_bytes
  • 查发送字节数(上行/上传):nsenter -t 12345 -n cat /sys/class/net/eth0/statistics/tx_bytes
  • 两次采样求差值,再除以时间间隔,即可算出平均速率(单位:B/s)

该方法零开销、无侵入,适合集成进简单监控脚本或健康检查逻辑中。

可选:容器内限速(需权限与工具)

若需更灵活策略(如双向限速、基于端口分类),可在容器内部配置 tc,但需满足两个前提:

  • 容器启动时加 --cap-add=NET_ADMIN,否则 tc 命令会因权限拒绝失败
  • 镜像中需预装 iproute2(含 tc),或通过包管理器动态安装
  • 进入容器后执行:tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

这种方式规则随容器生命周期存在,删除容器即清理,但安全策略通常限制 NET_ADMIN,生产环境慎用。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

785

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6279

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7377

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2913

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

319

2026.02.11

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

471

2026.03.31

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

440

2026.05.11

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

325

2026.05.15

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Docker 官方文档
Docker 官方文档

共0课时 | 0人学习

宝塔 Docker 模块使用手册
宝塔 Docker 模块使用手册

共0课时 | 0人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn