如果需要抓包的容器里,没有安装tcpdump
命令,则可在容器所在宿主机上,使用 nsenter
命令切换网络命名空间后,使用宿主机上的tcpdump
命令,对容器进行抓包分析。
获取容器的 PID
根据容器名查找容器编号。
docker ps | grep prometheus | awk '{print $1}'
获取 PID
docker inspect --format "{{.State.Pid}}" d8e4f3ff09f8
切换命名空间
使用nsenter
命令切换命名空间。
nsenter -n -t 31342
此时可以使用tcpdump
命令对容器网络进行抓包。
tcpdump -vnX 'ip[2:2]>181'