当前位置: 首页 > news >正文

docker运行wonderShaper实现网卡限速

文章目录

  • 一、wondershaper介绍
  • 二、docker运行wonderShaper
    • 1、镜像构建
    • 2、容器编排
    • 3、启动容器
    • 4、执行wonderShaper
  • 三、源码放送

一、wondershaper介绍

WonderShaper是一款Linux下的网络带宽控制工具,自2002年由Bert Hubert首次发布,后经多代人改进和增强。它利用iproute的tc命令来轻松地限制网络适配器的带宽,帮助用户更有效地管理网络流量。现在它提供了命令行接口,并使用HTB(Hierarchical Token Bucket)队列取代了CBQ,使其在高速网络环境下表现更出色。

二、docker运行wonderShaper

1、镜像构建

Dockerfile

#基础镜像
FROM alpine:latest#拷贝
COPY wondershaper1.4.1/wondershaper /usr/local/bin/#安装tc、bash
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone \&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update \&& apk add iproute2 && apk add --no-cache bash \&& chmod +x /usr/local/bin/wondershaper && dos2unix /usr/local/bin/wondershaper#保持运行
CMD ["tail", "-f", "/dev/null"]

如果需要java环境,可修改为
FROM openjdk:8-jre-alpine
或者
FROM adoptopenjdk/openjdk8-openj9:alpine-slim

打包脚本 img-build.sh

#!/bin/bash
docker build -t registry.cn-shanghai.aliyuncs.com/00fly/wondershaper:1.4.1 .

执行打包输出
在这里插入图片描述

2、容器编排

docker-compose.yml

services:wondershaper:image: registry.cn-shanghai.aliyuncs.com/00fly/wondershaper:1.4.1cap_add:- NET_ADMIN- SYS_MODULEcontainer_name: wondershaper deploy:resources:limits:cpus: '1.0'memory: 128Mreservations:cpus: '0.05'memory: 64Mvolumes:- /lib/modules:/lib/modulesrestart: on-failurenetwork_mode: hostlogging:driver: json-fileoptions:max-size: '5m'max-file: '1'

使用host网络、并赋予NET_ADMIN、SYS_MODULE角色,并执行/lib/modules文件映射,否则wonderShaper可能执行失败。

3、启动容器

restart.sh

#!/bin/bash
docker-compose down && docker-compose up -d

在这里插入图片描述

4、执行wonderShaper

执行docker exec -it wondershaper sh 命令进入容器内部测试
在这里插入图片描述

三、源码放送

点击下载


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

http://www.dtcms.com/a/392188.html

相关文章:

  • Windows 安装 Docker Desktop 到 D 盘完整教程(含迁移方案)
  • 基于陌讯AI检测算法本地化部署教程:基于Docker的环境配置与性能测试
  • Docker Docker Compose 完整入门与实用技巧
  • ARP协议工作原理分析(基于Wireshark)
  • CKS-CN 考试知识点分享(14) Istio网络策略
  • TCP 协议全解析:握手、挥手、重传与流控的深度剖析
  • 计算机视觉(opencv)实战二十七——目标跟踪
  • 深度学习中神经网络与损失函数优化
  • 整体设计 完整的逻辑链条 之1 点dots/线lines/面faces 的三曲:三进三出的三个来回
  • 微调基本理论
  • LeetCode算法日记 - Day 48: 课程表II、火星词典
  • 【面板数据】地级市中国方言多样性指数数据集
  • C++编程学习(第35天)
  • SS443A 霍尔效应传感器:高性能磁感应解决方案
  • MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
  • GitHub 热榜项目 - 日榜(2025-09-20)
  • 怎么判断 IP是独享的
  • Linux多进程编程(上)
  • 如何在Spring Boot项目中添加自定义的配置文件?
  • 【MySQL初阶】01-MySQL服务器和客户端下载与安装
  • AI搜索的下一站:多模态、个性化与GEO的道德指南
  • OpenLayers地图交互 -- 章节四:修改交互详解
  • Gradle插件的分析与使用
  • 如何避免everything每次都重建索引
  • 基于SIFT+flann+RANSAC+GTM算法的织物图像拼接matlab仿真,对比KAZE,SIFT和SURF
  • 笔记:现代操作系统:原理与实现(3)
  • 【智能系统项目开发与学习记录】Docker 基础
  • 数据展示方案:Prometheus+Grafana+JMeter 备忘
  • flask获取ip地址各种方法
  • 17.6 LangChain多模态实战:语音图像文本融合架构,PPT生成效率提升300%!