‫In dieser Vorlesung müssen Sie einige der vorherigen Konzepte zum Thema Vernetzung und zum Erstellen
‫von Containern verstehen.
‫Nachdem wir die Konzepte des Docker-Netzwerks und die Funktionsweise aller virtuellen Netzwerk- und IP-Funktionen
‫verstanden haben, wollen wir uns einige der Befehlszeilenoptionen für die Verwaltung ansehen.
‫Erstens gibt es das offensichtliche Netzwerk ls. Da wir mehrere Netzwerke erstellen können, haben wir sicherlich den Befehl
‫ls, um sie aufzulisten.
‫Wir haben den üblichen Inspektionsbefehl, an den Sie wahrscheinlich von allen anderen Inspektionen, die wir durchführen,
‫gewöhnt sind.
‫Das zeigt uns die Details zu einem bestimmten Netzwerk.
‫Dann haben wir einen Befehl create, der einen optionalen Treiber enthält, den wir für die Verwendung von integrierten Treibern
‫und Treibern von Drittanbietern zum Erstellen eines neuen virtuellen Netzwerks angeben können.
‫Dann haben wir die Befehle connect und disconnect, um einen aktiven Container so zu ändern, dass für diesen Container
‫eine neue Netzwerkkarte in einem virtuellen Netzwerk erstellt wird.
‫Es ist so, als würde man eine Netzwerkkarte in einen Computer stecken, während dieser läuft.
‫Auf geht's.
‫Also zurück zu meiner Kommandozeile. Mit den Konzepten, die wir gerade gelernt haben, kann
‫ich tatsächlich ein Docker-Netzwerk erstellen. Dies zeigt mir alle Netzwerke, die erstellt wurden. In diesem Fall werden bei
‫Ausführung desselben Befehls wahrscheinlich dieselben drei angezeigt. Abhängig von Ihrem
‫Betriebssystem und der Docker-Version wird möglicherweise das Brückennetzwerk docker0 oder bridge
‫angezeigt, beide bedeuten jedoch dasselbe. Welches ist das Standardnetzwerk, das über die NAT-Firewall eine Verbindung zu dem physischen
‫Netzwerk herstellt, mit dem Ihr Host verbunden ist. Bisher mussten wir uns keine Sorgen machen,
‫da alle unsere Container nur an dieses Netzwerk angeschlossen waren und funktionierten.
‫Nachdem dieser Nginx-Container jetzt ausgeführt wird, werden Sie bei einer Überprüfung des Bridge-Netzwerks durch ein Docking-Netzwerk feststellen, dass die mit
‫diesem Netzwerk verbundenen Container aufgelistet sind. Sie werden sehen, dass unser Nginx,
‫den wir Webhost genannt haben, dort angehängt ist.
‫Sie können tatsächlich seine IP-Adresse sehen. Und Sie werden hier oben sehen, dass diese Netzwerke automatisch IP-Adressen
‫zuweisen, und es zeigt Ihnen hier mit der IPAM-Konfiguration, dass das Subnetz standardmäßig 172 ist. Dies ist normalerweise
‫das Standardnetzwerk für jeden Docker-Host.
‫Es kann aber auch das Gateway für dieses Netzwerk geändert werden, das schließlich zum physischen Netzwerk
‫weitergeleitet wird.
‫Wenn wir zum Docker-Netzwerk zurückkehren, können wir diese beiden anderen Netzwerke sehen. Bei dem Host-Netzwerk handelt es
‫sich um ein spezielles Netzwerk, das das virtuelle Netzwerk von Docker überspringt und den
‫Container direkt an die Host-Schnittstelle anschließt.
‫Wie Sie sich vorstellen können, hat dies Vor- und Nachteile, da verhindert wird,
‫dass die Sicherheitsgrenzen der Containerisierung die Schnittstelle dieses Containers schützen.
‫In bestimmten Situationen kann es jedoch auch die Leistung von Hochdurchsatz-Netzwerken verbessern und
‫einige andere Probleme mit spezifischer Spezialsoftware umgehen.
‫Dann haben wir die letzte von keiner, was so etwas wie eine Schnittstelle auf Ihrem Computer
‫ist, die mit nichts verbunden ist, aber wir können unsere eigene erstellen.
‫Erstellen wir ein Docker-Netzwerk ... erstelle my_app_net.
‫Jetzt
‫machen wir wieder ein Docker-Netzwerk. Sie werden feststellen, dass mein neues virtuelles Netzwerk mit einem Bridge-Treiber erstellt wurde.
‫Und das liegt daran, dass dies der Standardtreiber ist.
‫Es ist ein einfacher Treiber, der einfach ein virtuelles Netzwerk lokal mit einem eigenen Subnetz
‫irgendwo um den 172 erstellt. 17 und höher, weil es mit der Zeit zunimmt. Also, 17, dann 18, 19, 20 und so weiter.
‫Es verfügt über keine der erweiterten Funktionen, die wir später in
‫diesem Kurs sehen werden, z. B. überlagerte Netzwerke, die ein privates Netzwerk zwischen Hosts und anderen Treibern von Drittanbietern wie Weave ermöglichen.
‫Wenn Sie sich den Docker-Befehl network create mit Hilfe ansehen, werden Sie feststellen, dass ich nicht nur den Treiber angeben
‫kann, den ich verwenden möchte, sondern viele der IP- und Netzwerkoptionen, die Sie
‫in einem erweiterten Szenario möglicherweise benötigen.
‫Mit diesen Netzwerken können wir verschiedene Dinge tun und wie wir sie mit unseren Containern verbinden.
‫Wir können die Option --network verwenden, wenn wir einen Container erstellen.
‫Also, Docker-Container führen den Namen new
‫nginx und dann network und dann my app net und
‫dann das nginx-Image aus.
‫Wenn wir ein Docker-Netzwerk in meinem App-Netzwerk inspizieren, werden Sie feststellen, dass sich das neue Nginx, das ich gerade erstellt habe, jetzt
‫in diesem Netzwerk befindet. Es hat eine neue IP-Adresse von 172. 18.
‫Es ist also das nächste Subnetz in der Liste.
‫Tatsächlich müssen wir jedoch keine neuen Container starten, denn genau wie in der
‫realen Welt, in der Sie Ethernet-Geräte aus- und wieder einstecken und eine Verbindung zu drahtlosen Netzwerken herstellen können, können Sie
‫dies auch mit vorhandenen Netzwerken und vorhandenen Containern tun.
‫Hierfür verwenden wir die Docker-Netzwerkverbindungs- und -trennungsoptionen, und Sie können --help verwenden, um
‫alle Optionen für das Docker-Netzwerk anzuzeigen.
‫In diesem Fall möchten wir das Docker-Netzwerk verwenden und den vorhandenen Container, den wir zuerst
‫erstellt haben, mit unserem neuen Netzwerk verbinden.
‫Ich werde das neue App-Netzwerk auswählen und dann den ursprünglichen Webhost auswählen, den wir erstellt haben.
‫Wenn ich nun einen Docker-Container von meinem ursprünglichen Webhost inspiziere, werden Sie feststellen, dass er sich jetzt in
‫zwei Netzwerken befindet. Das ursprüngliche Brückennetzwerk und ich
‫haben im Grunde das Äquivalent dazu getan, ihm eine neue Ethernet-Schnittstelle in einem anderen Netzwerk mit einer
‫anderen IP zu geben, die vom DHCP empfangen wurde.
‫Wir sind also jetzt im 17er-Netzwerk im 18er-Netzwerk.
‫Wenn ich das trennen wollte, könnte ich das gleiche mit nur trennen tun. Wenn ich dann zurückkehre und noch einmal eine Inspektion
‫durchführe, werden Sie feststellen, dass es jetzt nur noch ein einziges Netzwerk gibt.
‫Wie Sie sehen, gibt es viele interessante Optionen für die Docker-Vernetzung und das eigentliche Endziel hier. Ich mag es, mit
‫Containern zu prahlen, wenn Sie in diesem Fall alle Anwendungen auf einem einzigen Server ausführen Sie sind
‫in der Lage, sie wirklich zu schützen. Denn in der physischen Welt, in
‫der wir virtuelle Maschinen und Hosts in einem Netzwerk erstellen, haben wir die Ports und das Netzwerk auf
‫unseren Anwendungsservern häufig überbelichtet.
‫In diesen Fällen legen Sie, wenn Sie Ihre App-Container in einem
‫virtuellen Netzwerk in einem Netzwerk zusammenfassen, nur die Ports auf Ihrem Host offen,
‫für die Sie speziell -p verwenden. Und alles andere ist mit dieser geschützten Firewall in ihrem virtuellen
‫Netzwerk ein bisschen sicherer.
‫Später, wenn wir in Docker Swarm eintreten, werden wir tatsächlich mehr
‫über Multi-Host-Netzwerke erfahren und wie dies noch besser wird, wenn wir mit dem Skalieren und Skalieren beginnen.
‫Zusammenfassend haben wir nur eine Reihe von Befehlen zum Verwalten von Docker-Netzwerken behandelt.
‫Wir spielten mit den Befehlen ls und inspect, erstellten ein Docker-Netzwerk und verwendeten den Standardtreiber
‫von bridge.
‫Wir brauchten eigentlich keinen --treiber.
‫Zuletzt haben wir die Befehle network connect und network disconnect ausprobiert, um eine Netzwerkkarte zu einem laufenden Container
‫hinzuzufügen und daraus zu entfernen.