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-