我正在使用UDP中的Docker做非常基本的测试。
我在端口8000 / UDP上启动一个容器:

docker run -p 8000:8000/udp jgkamat/netcat -l -u -p 8000

我看到流量到达此端口:
ngrep -W byline -d any portrange 8000

我发送一个UDP数据包:
nc -u <ip-address> 8000

这是ngrep的结果:
filter: (ip or ip6) and ( portrange 8000 )
#
U <my-public-ip>:37704 -> 192.168.0.4:8000
  hello.............
#
U <my-public-ip>:37704 -> 172.17.0.2:8000
  hello.
#
U <my-public-ip>:37704 -> 172.17.0.2:8000
  hello.

谁能解释为什么数据包重复?

最佳答案

您会看到正在转发的同一个udp软件包的传输:

netcat -(hello)-> host-interface -(hello)-> container-interface

每个容器都有自己的网络接口(interface)。 ngrep正在监视两个主机接口(interface):一个通常是eth0,一个是在docker网络中,通常是docker0

关于networking - Docker复制UDP数据包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44851505/

10-16 23:36