tc-docker限制容器的下载速度,使用tc命令实现上传下载的限制,如要限制容器的上传的速度,需要在应用的容器内安装iproute工具包,使用tc命令在容器启动时限制。

docker run -d \
    --name tc-docker \
    --network host \
    --privileged \
    --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/run/docker/netns:/var/run/docker/netns:shared \
    codyguo/tc-docker

使用
在启动容器时添加标签,org.label-schema.tc.enabled值为1启用限制,非1不启用。
org.label-schema.tc.rate配置最小带宽限制。
org.label-schema.tc.ceil配置最大带宽限制。
支持的单位:

bit, kbit, mbit, gbit, tbit
bps, kbps, mbps, gbps, tbps

docker run -it \
    -p 5001:5001 \
    --label "org.label-schema.tc.enabled=1" \
    --label "org.label-schema.tc.rate=1mbps" \
    --label "org.label-schema.tc.ceil=10mbps" \
    ubuntu sh -c " \
    apt-get update \
    && apt-get install iperf \
    && iperf -s"

 测试

iperf -c 127.0.0.1 -i 1 -n 100M -p 5001
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 172.17.0.7 port 5001 connected with 127.0.0.1 port 39406
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-46.6 sec  42.4 MBytes  7.64 Mbits/sec
[  4] local 172.17.0.7 port 5001 connected with 127.0.0.1 port 39442
[  4]  0.0- 3.6 sec  3.25 MBytes  7.64 Mbits/sec

Iperf介绍
是一款网络性能测试工具,在网络中单向传输数据流,根据需要调整传输速率和数据流大小,也可以根据需要报告带宽、延迟抖动和数据包丢失。

Iperf软件介绍及命令详解_恋上邻居家的猫咪的博客-CSDN博客_iperf命令

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐