Auf einem Debian-Stretch-Host (verbunden mit einem physischen LAN) habe ich eine neue Docker-Installation (v18.09) mit einem Datenbankcontainer (dem Host zugeordneter Port) und führe KVM / libvirt mit einigen Debian-Stretch-VMs aus. Ich kann über das LAN auf den Docker-Container und die VMs zugreifen (abhängig von der Konfiguration über den SSH-Tunnel oder direkt), habe jedoch Probleme, über die VMs auf den Docker-Container zuzugreifen.
# brctl show
bridge name bridge id STP enabled interfaces
br-f9f3ccd64037 8000.0242b3ebe3a0 no
docker0 8000.024241f39b89 no veth35454ac
virbr0 8000.525400566522 yes virbr0-nic
Nachdem ich tagelang gelesen hatte, fand ich in diesem Beitrag eine sehr überzeugende Lösung Docker und KVM mit einer Brücke ( Original ), die ich nicht zur Arbeit brachte. Die Lösung schlägt vor, Docker mit einem einzeiligen Konfigurationscode daemon.json zu initiieren, um die KVM-Standardbrücke zu verwenden. Wie schön wäre das! Gibt es Hoffnung?
Ich habe zwei verschiedene Konfigurationen für die Vernetzung zwischen den KVM-VMs ausprobiert. In beiden Fällen ist die Kommunikation zwischen den VMs und der LAN + Router + Cloud einwandfrei, aber ich weiß einfach nicht, wie ich über den Zaun kommen soll - zum grüneren Gras ... :)
Conf 1 - KVM-Standardbrücke mit NAT: Ich kann ssh zum Debian-Host und auf den Docker-Container-Port zugreifen, aber gibt es ein Setup mit einer direkten Route?
Conf 2 - Macvtap-Adapter im Bridge-Modus zum LAN: Ich kann die Host-LAN-IP nicht von der VM aus anpingen, obwohl beide mit demselben Router verbunden sind. Die Antwort von der VM selbst lautet Destination Host Unreachable. Irgendwelche Gedanken warum?
Wäre es besser, den Docker-Daemon in einer separaten VM auszuführen, als direkt auf dem Debian-Host? Auf diese Weise können sowohl der Container als auch die VM auf die KVM-Standardbrücke zugreifen. Aber ich fand es etwas seltsam, Docker in einer VM auf einem KVM-Host auszuführen.
Jede klare Anleitung wäre dankbar!
Übrigens ist die Bridge br-f9f3ccd64037eine benutzerdefinierte Bridge, die ich mit Docker für die zukünftige Kommunikation zwischen Containern erstellt habe. Es wird nicht verwendet.
Aktualisieren:
Ich habe gerade festgestellt, dass ich mit der ersten Konfiguration einfach über die IP-Adresse (172.17.0.2) der VM-Gäste eine Verbindung zum Docker-Container herstellen kann.
Meine anfängliche Einrichtung war die zweite Konfiguration, da ich RDP in die VMs einbauen wollte. Dies ist einfacher, da der Macvtap-Treiber die VMs direkt mit dem LAN verbindet und keine SSH-Verbindung erforderlich ist. Dann konnte ich den Container nicht erreichen.

