Verbinden eines Docker-Containers mit einer Netzwerkschnittstelle / einem Netzwerkgerät anstelle einer IP-Adresse

Nach sorgfältigen Recherchen, Tests und Versuchen konnte ich nur herausfinden, ob ein Docker-Container an eine bestimmte Schnittstelle angeschlossen werden kann, indem er von einer IP / einem Port weitergeleitet wurde. Dies kann durch Hinzufügen von @ erreicht werd-p Host-IP:Host-Port:Container-Port zu einerdocker run Befehl

Ich habe eine App, die UDP-Broadcasts abhört (255.255.255.255), und konnte die Weiterleitung nicht so konfigurieren, dass mein Container diese Broadcasts empfängt, ohne den gesamten Netzwerkverkehr auf dem betreffenden Port weiterzuleiten (unabhängig davon, über welchen Port) Schnittstelle kommt es in), dh:-p Host-Port:Container-Port.

Es ist möglich den Container mit @ zu konfigurier--net=host und schreibe einfach meinen Code, um ihn an eine bestimmte Schnittstelle zu binden, was ich getan und getestet habe, aber das widerspricht immer noch der Grundidee eines Containers. Das Ziel besteht darin, dass mehrere Container derselben App auf verschiedenen Netzwerkschnittstellen empfangsbereit sind (wie bei Geräten, nicht bei Adressen).

Haben Sie eine Idee, wie ich das machen könnte?

EDIT # 1: Nachdem ich darüber nachgedacht habe, ist es möglicherweise ausreichend, die Bridge über die erforderliche Schnittstelle einzurichten, aber ich vertraue nicht darauf, dass das Betriebssystem die Broadcast-Pakete darüber sendet. Bleiben Sie dran, wenn ich weitere Tests durchführe.

EDIT # 2: Pakete werden einwandfrei über eine Brücke gesendet. Die Brücke ist jedoch als Docker-Standardbrücke konfiguriert. Ich konnte nicht herausfinden, wie Container auf verschiedenen Brücken betrieben werden. Ich habe einige Notizen gesehen, die darauf hindeuten, das Netzwerk auf @ zu setze--net=none und konfigurieren Sie es selbst über die lxc-Containereinstellungen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage