Networking 如何为单个docker容器捕获数据包

Networking 如何为单个docker容器捕获数据包,networking,docker,Networking,Docker,主机上运行着许多容器。我想为其中一个容器捕获数据包。有什么方法可以做到这一点吗?您可以将一个容器的网络命名空间绑定到另一个容器: docker run -it --rm --net container:<container_name> \ nicolaka/netshoot tcpdump ... docker run-it--rm--net容器:\ nicolaka/netshoottcpdump。。。 要查看有关上面使用的Netshot映像的更多信息,请参阅:来自和适用于

主机上运行着许多容器。我想为其中一个容器捕获数据包。有什么方法可以做到这一点吗?

您可以将一个容器的网络命名空间绑定到另一个容器:

docker run -it --rm --net container:<container_name> \
  nicolaka/netshoot tcpdump ...
docker run-it--rm--net容器:\
nicolaka/netshoottcpdump。。。

要查看有关上面使用的Netshot映像的更多信息,请参阅:

来自和适用于使用Wireshark的工作站:

docker exec-ti cat/sys/class/net/eth0/iflink
28
ip链路| grep 28
28: veth11b0a6c@if27:mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT组DEFAULT

使用
nsenter-n-tpid
命令,进入相同的网络名称空间,然后执行
tcpdump

Wireshark是您需要的,通过mac地址过滤网络。检查上面的两个链接可能会有帮助。我也在努力找到这个。这是需要做的,但我正在努力获得正确的命令。1.查找docker在主机中创建的接口。请记住,一个是docker容器中的内部接口,另一个是主机中的接口。2.我们可以简单地使用$tcpdump-i在该接口上执行tcpdump