docker運(yùn)行wonderShaper實(shí)現(xiàn)網(wǎng)卡限速的代碼實(shí)現(xiàn)
一、wondershaper介紹
WonderShaper是一款Linux下的網(wǎng)絡(luò)帶寬控制工具,自2002年由Bert Hubert首次發(fā)布,后經(jīng)多代人改進(jìn)和增強(qiáng)。它利用iproute的tc命令來(lái)輕松地限制網(wǎng)絡(luò)適配器的帶寬,幫助用戶更有效地管理網(wǎng)絡(luò)流量?,F(xiàn)在它提供了命令行接口,并使用HTB(Hierarchical Token Bucket)隊(duì)列取代了CBQ,使其在高速網(wǎng)絡(luò)環(huán)境下表現(xiàn)更出色。
二、docker運(yùn)行wonderShaper
1、鏡像構(gòu)建
#基礎(chǔ)鏡像
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
#保持運(yùn)行
CMD ["tail", "-f", "/dev/null"]
如果需要java環(huán)境,可修改為
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 .
執(zhí)行打包輸出

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網(wǎng)絡(luò)、并賦予NET_ADMIN、SYS_MODULE角色,并執(zhí)行/lib/modules文件映射,否則wonderShaper可能執(zhí)行失敗。
3、啟動(dòng)容器
restart.sh
#!/bin/bash docker-compose down && docker-compose up -d

4、執(zhí)行wonderShaper
執(zhí)行docker exec -it wondershaper sh 命令進(jìn)入容器內(nèi)部測(cè)試

到此這篇關(guān)于docker運(yùn)行wonderShaper實(shí)現(xiàn)網(wǎng)卡限速的代碼實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)docker wonderShaper網(wǎng)卡限速內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker安裝rocketMQ和安裝過(guò)程中出現(xiàn)問(wèn)題的解決
本文主要介紹了docker安裝rocketMQ和安裝過(guò)程中出現(xiàn)問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Docker 安裝 Nginx 并掛載目錄的實(shí)現(xiàn)示例
本文介紹了如何使用Docker拉取Nginx鏡像、創(chuàng)建容器,并設(shè)置掛載目錄,掛載目錄用于將容器內(nèi)配置文件與主機(jī)關(guān)聯(lián),便于直接修改影響容器配置,感興趣的可以了解一下2024-10-10
Docker如何使用nginx搭建tomcat集群(圖文詳解)
這篇文章主要介紹了Docker使用nginx搭建tomcat集群的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
解決docker pull被復(fù)位出現(xiàn)的問(wèn)題
這篇文章主要介紹了解決docker pull被復(fù)位出現(xiàn)的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
如何使用docker+frp進(jìn)行內(nèi)網(wǎng)穿透
這篇文章主要介紹了使用docker+frp進(jìn)行內(nèi)網(wǎng)穿透,在公網(wǎng)上的ubuntu系統(tǒng)需要配置相關(guān)操作,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
已有docker鏡像構(gòu)建過(guò)程分析(使用示例)
docker history命令用于查看指定鏡像的歷史層信息,它顯示了鏡像創(chuàng)建過(guò)程中的每一層,包括創(chuàng)建時(shí)間、創(chuàng)建者、大小和注釋等信息,本文介紹已有docker鏡像構(gòu)建過(guò)程分析,感興趣的朋友一起看看吧2024-12-12

