如何finddocker容器的docker-machinenetworking适配器名称?

我想介绍networking变化到docker集装箱。 具体来说,我希望能够运行如下命令:

sudo tc qdisc add dev vethecb732a root netem delay 500ms 400ms distribution normal 

以及docker机环境内的其他相关的networkingconfiguration命令。

Docker似乎为docker-machine中运行的每个容器创build并命名一个networking适配器。 但是,我不确定如何将容器中可用的信息与实际随机生成的networking适配器名称相关联,以便正确执行上述命令。

当我从这个容器的docker-machine中的ip addr获得信息时:

 22: veth5009782@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 4a:f8:d0:05:b6:90 brd ff:ff:ff:ff:ff:ff inet6 fe80::48f8:d0ff:fe05:b690/64 scope link valid_lft forever preferred_lft forever 

这些是容器的networking设置:

  "NetworkSettings": { "Bridge": "", "SandboxID": "3092a7a4d0c09b7461ec2683653f315ed872710e9f74656b6292ada8d2c45931", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": {}, "SandboxKey": "/var/run/docker/netns/3092a7a4d0c0", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "9fa9f74c3e412264055b3976acd0c740997390625a45e8f6c4fe862acd9e8db8", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:02", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "10bb8d5490be0addeacc073534df9517e7fd81f5c607b99cf859a6f4218e9251", "EndpointID": "9fa9f74c3e412264055b3976acd0c740997390625a45e8f6c4fe862acd9e8db8", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:02" } } } 

我已经validation,我的tc qdiscconfiguration工作,手动执行时。 我只是不知道如何将正确的设备与docker集装箱相关联,并允许程序化的tc规则。

尽我所见,没有任何东西可以直接将容器与Docker-Machine适配器相关联。

我正在运行一个基本的Ubuntu的可靠的图像进行testing。

一个select是build立一个networking名称的容器,当我开始他们(假设最高的索引是最新的容器),然后存储和使用它,但它感觉相当脆弱,如果多个进程正在使用相同的docker机和启动容器(或使用docker组成)。