容器内无tcpdump,如何在宿主机上抓容器的包

抓包的容器里,没有安装tcpdump 命令,我们可以去容器所在宿主机上,使用 nsenter
命令切换网络命名空间后,使用宿主机上的tcpdump 命令,对容器进行抓包分析。
此例中,我要抓取容器中端口是5240的包,步骤如下
获取容器的 PID
根据容器名查找容器编号。
![]()
docker ps | grep mysql | awk '{print $1}'
获取 PID
![]()
docker inspect --format "{{.State.Pid}}" 5cc6b84c0fc4
切换命名空间
使用nsenter命令切换命名空间。
![]()
nsenter -n -t 1602767
此时可以使用tcpdump命令对容器网络进行抓包。



