Docker 限制容器内网络带宽
要限制 Docker 容器内的网络带宽,没有原生命令支持,需要借助工具。最方便并且对原有部署改动最小的办法是创建 tc-docker 特权容器来限制其他容器的带宽。
Docker CLI
创建 tc-docker 特权容器,保持后台运行,管理其他容器的网络带宽:
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
在原有的 docker run 命令中增加 label
参数进行带宽限制。例如限制为 1Mbps:
docker run -itd \
--label "org.label-schema.tc.enabled=1" \
--label "org.label-schema.tc.rate=1mbps" \
debian
docker-compose
上述限制写成 docker-compose.yml 如下:
version: '3.8'
services:
tc-docker:
image: codyguo/tc-docker
network_mode: host
privileged: true
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/run/docker/netns:/var/run/docker/netns:shared
app:
image: debian
command: /bin/bash
labels:
org.label-schema.tc.enabled: "1"
org.label-schema.tc.rate: "1mbps"
depends_on:
- tc-docker
tty: true
container_name: app
标签: 笔记