docker运行wonderShaper实现网卡限速的代码实现
一、wondershaper介绍
WonderShaper是一款Linux下的网络带宽控制工具,自2002年由Bert Hubert首次发布,后经多代人改进和增强。它利用iproute的tc命令来轻松地限制网络适配器的带宽,帮助用户更有效地管理网络流量。现在它提供了命令行接口,并使用HTB(Hierarchical Token Bucket)队列取代了CBQ,使其在高速网络环境下表现更出色。
二、docker运行wonderShaper
1、镜像构建
#基础镜像
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.1
cap_add:
- NET_ADMIN
- SYS_MODULE
container_name: wondershaper
deploy:
resources:
limits:
cpus: '1.0'
memory: 128M
reservations:
cpus: '0.05'
memory: 64M
volumes:
- /lib/modules:/lib/modules
restart: on-failure
network_mode: host
logging:
driver: json-file
options:
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 命令进入容器内部测试

到此这篇关于docker运行wonderShaper实现网卡限速的代码实现的文章就介绍到这了,更多相关docker wonderShaper网卡限速内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Docker如何使用nginx搭建tomcat集群(图文详解)
这篇文章主要介绍了Docker使用nginx搭建tomcat集群的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-12-12


最新评论