Recently I wanted to try to limit the total outbound bandwidth available to my docker containers. I’ve been trying to write rules against
tc, but have been having difficulty. The following script should allow for generous download by default to containers, but restrict upload to 50kbps.
DNLD=30gbit # DOWNLOAD Limit UPLD=50kbps # UPLOAD Limit tc qdisc del dev docker0 root tc qdisc add dev docker0 root handle 1: htb default 10 tc class add dev docker0 parent 1: classid 1:10 htb rate $DNLD tc class add dev docker0 parent 1: classid 1:11 htb rate $UPLD # this rule should place all traffic originating from containers into the upload rate control tc filter add dev docker0 protocol ip parent 1:0 u32 \ match ip src 172.17.0.0/16 flowid 1:11
Unfortunately, when using speedtest-cli from inside a docker container, it doesn’t seem to restrict the upload speed at all. I’m using docker 1.11, and docker is definitely establishing
Does anyone have any tips?