概述
容器很好用,但是容器要是出现网络问题就头大,比如说几十个容器中有一个容器疯狂乱发报文冲击防火墙. 防火墙可不管你,直接就把整个宿主机拉入小黑屋.
凡是网络问题,工具不顶用就要考虑抓包了,,我们可以抓宿主机的包,也可以通过nsenter抓某个容器的包.
比如我这有一个案例,一个容器不断的请求dns.
不需要每个docker都安装抓包工具,只要宿主机有tcpdump就可以了,利用nsenter,用来进入到进程的linux namespace中。centos7自带
#获取容器的pid
docker inspect 1d4d8cdf0dc4 -f '{{.State.Pid}}'
5583
#进入容器的namespace
nsenter -n -t 5583
抓包就用 tcpdump -i 网卡名 host 只抓取指定的ip