小智 23
首先,获取pid
您感兴趣的容器
docker inspect --format "{{ .State.Pid }}" "$CONTAINER_ID"
Run Code Online (Sandbox Code Playgroud)
然后进入同一个网络命名空间
nsenter -n -t "$PID"
Run Code Online (Sandbox Code Playgroud)
最后,运行tcpdump
Eti*_*ier 18
来自和用于带有 Wireshark 的工作站:
docker exec -ti <container id> cat /sys/class/net/eth0/iflink
28
Run Code Online (Sandbox Code Playgroud)
ip link | grep 28
28: veth11b0a6c@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
Run Code Online (Sandbox Code Playgroud)
您可以将一个容器的网络名称空间绑定到另一个:
docker run -it --rm --net container:<container_name> \
nicolaka/netshoot tcpdump ...
Run Code Online (Sandbox Code Playgroud)
要查看有关上面使用的netshoot图像的更多信息,请参见:https : //github.com/nicolaka/netshoot