1. 前言
为避免Docker容器打满带宽,有时需要对容器进行限速。
目前比较好的方案是使用 tc-docker ,本文中我们就来学习一下。
参考文档:
2. 启动限速容器
1 2 3 4 5 6 7 8
| 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:latest
|
3. 对容器限速
容器限速示例:启动 gcloud cli 容器,启动时添加限速
1 2 3 4 5 6 7
| docker run --name gcloud-cli -d \ --label "org.label-schema.tc.enabled=1" \ --label "org.label-schema.tc.rate=10mbps" \ --label "org.label-schema.tc.ceil=50mbps" \ -v /data/gcloud:/data/gcloud \ gcr.io/google.com/cloudsdktool/google-cloud-cli:latest \ tail -f /dev/null
|
这个配置中,容器被限速为10mbps。
- org.label-schema.tc.enabled:当设置为1时,启用限速
- org.label-schema.tc.rate:容器的带宽或速率限制,限制此类及其所有子类的最大速率。
- org.label-schema.tc.ceil:容器的带宽或最大速度限制,如果类的父类有空余带宽,子类可以发送的最大速率。
相关文档:《谷歌云 gcloud CLI 使用说明》