我想对 docker 容器的出口流量应用 NetEm 延迟。通常,我运行:
# /sbin/tc qdisc add dev $INTERFACE root netem delay ${DELAY}ms
问题是我不知道容器连接到的接口。
例如,我正在运行以下容器:
docker run --rm -it alpine /bin/sh
然后我 ping 8.8.8.8:
/ # ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=44 time=39.783 ms
64 bytes from 8.8.8.8: seq=1 ttl=44 time=39.694 ms
我想要做的是从我的主机添加 NetEm 规则并查看 ping 时间的变化。
如果我运行ifconfig
,我会看到存在多个虚拟以太网接口(因为其他容器正在运行),但我不知道哪个连接到我感兴趣的容器:
# ifconfig
veth09fa1c5 Link encap:Ethernet HWaddr 96:73:c9:15:93:b8
inet6 addr: fe80::9473:c9ff:fe15:93b8/64 Scope:Link
.....
vethf05ef93 Link encap:Ethernet HWaddr ca:ea:97:ef:cd:9d
inet6 addr: fe80::c8ea:97ff:feef:cd9d/64 Scope:Link
.....
我相信我必须将 NetEm 规则应用于这些接口之一。那是对的吗?