我是为了查询哪个容器用了过多的流量,然后查到了 docker-74b27c0b 这样一个网卡,但是不知道具体是哪个容器。

通过 ip addr show | grep 74b27c0b 查到了这样的信息。

6: docker-74b27c0b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet 172.21.0.1/16 brd 172.21.255.255 scope global docker-74b27c0b
16: dockerc81b796@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker-74b27c0b state UP group default

这一步也可以通过 brctl 查

$ brctl show docker-74b27c0b
bridge name     bridge id               STP enabled     interfaces
docker-74b27c0b         8000.0242d83fb72c       no              dockerc81b796

上面的 ip addr 展示了这些信息,docker 网桥是 docker-74b27c0b,虚拟网卡接口是 dockerc81b796@if15,ip 是 172.21.0.1/16。

然后找对应的容器。

$ docker ps -q | xargs docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' | grep "172.21"
/emby-emby-1 - 172.21.0.2

这样就通过网桥找到了对应的容器。