Docker复制UDP数据包
我在用UDP做Docker的基本testing。 我在端口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
每个容器都有自己的networking接口。 ngrep
正在监视两个主机接口:一个是eth0
,一个是docker0
networking中的接口,通常是docker0
。