Docker 网络排障-宿主机虚拟网卡抓包指南
有时候会针对某一个docker容器抓包,排查网络问题。就需要知道宿主机上的哪个虚拟网卡对应容器,可以通过以下方式查看。
示例:
对 test-container 容器抓包,具体操作
1.进入容器查看iflink
swift@xxx-001:~$ docker exec -it test-container bash
[root@384a71d00b2b sonatype]# cat /sys/class/net/eth0/iflink
92.宿主机查看对应虚拟网卡
swift@xxx-001:~$ ip link |grep 9
link/ether 02:42:89:df:3d:4e brd ff:ff:ff:ff:ff:ff
link/ether 8a:7d:fa:d0:96:39 brd ff:ff:ff:ff:ff:ff link-netnsid 3
9: vethadfe873@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
link/ether da:90:0e:5d:04:af brd ff:ff:ff:ff:ff:ff link-netnsid 2
link/ether f6:b8:43:09:0b:7d brd ff:ff:ff:ff:ff:ff link-netnsid 0
link/ether ce:8c:08:d1:86:9e brd ff:ff:ff:ff:ff:ff
link/ether 32:ce:9e:82:e2:0d brd ff:ff:ff:ff:ff:ff
link/ether b2:2c:9b:3b:25:de brd ff:ff:ff:ff:ff:ff link-netnsid 4可以看到宿主机上的 vethadfe873 该虚拟网卡对应 test-container 容器
3.接下来就可以根据该虚拟网卡进行抓包操作
swift@xxx-001:~$ sudo tcpdump -i vethadfe873 -n