文章目录


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

ubuntu输出:

------------------------------------------------------------
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
Logo

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

更多推荐