2016-06-16 22 views
8

Docker erstellt diese virtuellen Ethernet-Schnittstellen veth[UNIQUE ID] aufgeführt in ifconfig. Wie kann ich herausfinden, welche Schnittstelle zu einem bestimmten Andock-Container gehört?Finden Sie heraus, welche Netzwerkschnittstelle zum Docker-Container gehört

Ich möchte den TCP-Verkehr hören.

+0

Es scheint, wie es eine offene Frage ist hier https://github.com/docker/docker/issues/14666 und es gibt einige Workarounds. Ich bin nicht gut im Networking und ich verstehe diese Workarounds nicht wirklich, also habe ich beschlossen, nur nach Host zu filtern, wenn ich tcpdump benutze. Funktioniert bei mir. Vielleicht wird es für Sie funktionieren, wenn Sie auch tcpdump verwenden oder wenn Ihr Tool ähnliche Filter hat. –

Antwort

5

Um Schnittstelle
In meinem Fall lokalisieren Wert aus dem Behälter immer war wie (check eth0 bis):

$ docker exec -it my-container cat /sys/class/net/eth1/iflink 
123 

Und dann:

$ ip ad | grep 123 
123: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker_gwbridge state UP group default 

prüfen mit tcpdump -i vethd3234u4


Referenz über mysteriou s iflink von http://lxr.free-electrons.com/source/Documentation/ABI/testing/sysfs-class-net:

150 What:   /sys/class/net/<iface>/iflink 
151 Date:   April 2005 
152 KernelVersion: 2.6.12 
153 Contact:  [email protected] 
154 Description: 
155     Indicates the system-wide interface unique index identifier a 
156     the interface is linked to. Format is decimal. This attribute is 
157     used to resolve interfaces chaining, linking and stacking. 
158     Physical interfaces have the same 'ifindex' and 'iflink' values. 
+1

Funktioniert nicht für mich. iflink im Container ist 14. "ip ad" auf dem Host hat keine Schnittstelle 14. "ip ad" im Container tut. Docker Version 17.03.1-CE. –

+0

Ich stelle fest, dass die Schnittstelle 12 in meinem Container die Schnittstelle 13 auf dem Gast ist. Und die Schnittstelle 14 in meinem anderen Container ist die Schnittstelle 15 auf dem Gast. Ich habe versucht, in Wireshark (auf dem Host) zu erfassen und herausgefunden, welche es auf den Verkehr basiert. –