一个计算机技术爱好者与学习者

0%

好好学Docker:Docker容器网络限速

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 使用说明》