docker运行wonderShaper实现网卡限速的代码实现

 更新时间:2026年06月12日 09:38:22   作者:爱码少年 00fly.online  
WonderShaper是一款Linux下的网络带宽控制工具,本文介绍了在docker容器中执行wondershaper网卡限速的完整实现,利用iproute的tc命令来轻松地限制网络适配器的带宽,帮助用户更有效地管理网络流量,下面就来详细的介绍一下

一、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安装rocketMQ和安装过程中出现问题的解决

    docker安装rocketMQ和安装过程中出现问题的解决

    本文主要介绍了docker安装rocketMQ和安装过程中出现问题的解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Docker Compose 配置指南小结

    Docker Compose 配置指南小结

    Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,本文主要介绍了Docker Compose 配置指南小结,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Docker概述与安装方法

    Docker概述与安装方法

    本文主要介绍了Docker的基本概念、发展历程、关键技术演进、架构及安装、配置、使用、镜像管理等以及性能优化等内容,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-04-04
  • Docker 安装 Nginx 并挂载目录的实现示例

    Docker 安装 Nginx 并挂载目录的实现示例

    本文介绍了如何使用Docker拉取Nginx镜像、创建容器,并设置挂载目录,挂载目录用于将容器内配置文件与主机关联,便于直接修改影响容器配置,感兴趣的可以了解一下
    2024-10-10
  • Docker如何使用nginx搭建tomcat集群(图文详解)

    Docker如何使用nginx搭建tomcat集群(图文详解)

    这篇文章主要介绍了Docker使用nginx搭建tomcat集群的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 解决docker pull被复位出现的问题

    解决docker pull被复位出现的问题

    这篇文章主要介绍了解决docker pull被复位出现的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 如何使用docker+frp进行内网穿透

    如何使用docker+frp进行内网穿透

    这篇文章主要介绍了使用docker+frp进行内网穿透,在公网上的ubuntu系统需要配置相关操作,本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • linux中docker的安装教程

    linux中docker的安装教程

    这篇文章主要介绍了linux中docker的安装教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Docker修改容器内部文件的三种方法

    Docker修改容器内部文件的三种方法

    今天在修改Docker内部文件的时候,安装vim居然失败了,在执行apt-get update时一直有几个404,解决无果,最后放弃安装vim,将文件拷贝出来修改,所以本文给大家分享一下如何修改Docker内部文件的方法,需要的朋友可以参考下
    2024-01-01
  • 已有docker镜像构建过程分析(使用示例)

    已有docker镜像构建过程分析(使用示例)

    docker history命令用于查看指定镜像的历史层信息,它显示了镜像创建过程中的每一层,包括创建时间、创建者、大小和注释等信息,本文介绍已有docker镜像构建过程分析,感兴趣的朋友一起看看吧
    2024-12-12

最新评论