Was sind die vier Netzwerkmodi von Docker?

青灯夜游
Freigeben: 2021-11-25 19:39:53
Original
16466 Leute haben es durchsucht

Die vier Netzwerkmodi von Docker sind: 1. Host-Modus, angegeben mit „–net=host“; 2. Container-Modus, angegeben mit „–net=container:NAME_or_ID“; 3. Keiner-Modus, angegeben mit „–net=none“. " angegeben; 4. Bridge-Modus.

Was sind die vier Netzwerkmodi von Docker?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.

Implementierungsprinzip

Docker nutzt Linux-Bridging (siehe „Linux Virtual Network Technology“), um eine Docker-Container-Brücke (docker0) auf dem Host zu virtualisieren. Wenn Docker einen Container startet, wird dieser dem Container entsprechend dem Netzwerk zugewiesen Segment der Docker-Bridge. Die IP-Adresse, Container-IP genannt, und die Docker-Bridge sind die Standard-Gateways für jeden Container. Da alle Container auf demselben Host mit derselben Netzwerkbrücke verbunden sind, können Container direkt über die Container-IP des Containers kommunizieren.

Die Docker-Bridge wird vom Host virtualisiert und ist kein echtes Netzwerkgerät. Sie kann vom externen Netzwerk nicht angesprochen werden, was auch bedeutet, dass das externe Netzwerk nicht über direkte Container-IP auf den Container zugreifen kann. Wenn der Container von außen zugänglich sein soll, können Sie den Container-Port dem Host zuordnen (Port-Mapping), d. h. ihn über den Parameter -p oder -P aktivieren, wenn Docker Run den Container erstellt, und [Host-IP verwenden ] beim Zugriff auf den Container: [Container-Port] Greifen Sie auf den Container zu.

Vier Arten von Netzwerkmodi

Docker-Netzwerkmodus Konfiguration Anweisungen
Hostmodus –net=host Der Container und der Host teilen sich den Netzwerk-Namespace.
Containermodus –net=container:NAME_or_ID Der Container teilt den Netzwerk-Namespace mit einem anderen Container. Ein Pod in Kubernetes ist ein Netzwerk-Namespace, der von mehreren Containern gemeinsam genutzt wird.
Keine-Modus –net=none Der Container verfügt über einen unabhängigen Netzwerk-Namespace, es werden jedoch keine Netzwerkeinstellungen dafür vorgenommen, wie z. B. die Zuweisung von Veth-Paaren und Bridge-Verbindungen, die Konfiguration von IP usw.
Bridge-Modus –net=bridge (Standard ist dieser Modus)

Host-Modus

Wenn Sie beim Starten eines Containers den Host-Modus verwenden, erhält der Container keinen unabhängigen Netzwerk-Namespace, sondern teilt sich einen Netzwerk-Namespace mit dem Host. Der Container virtualisiert nicht seine eigene Netzwerkkarte, konfiguriert seine eigene IP usw., sondern verwendet die IP und den Port des Hosts. Andere Aspekte des Containers, wie das Dateisystem, die Prozessliste usw., sind jedoch immer noch vom Host isoliert.

Container, die den Host-Modus verwenden, können direkt die IP-Adresse des Hosts verwenden, um mit der Außenwelt zu kommunizieren. Der Service-Port innerhalb des Containers kann auch den Port des Hosts ohne NAT verwenden besser, aber Docker-Host-Ports, die bereits verwendet wurden, können nicht erneut verwendet werden und die Isolierung des Netzwerks ist nicht gut.

Der Host-Modus ist in der folgenden Abbildung dargestellt:

Was sind die vier Netzwerkmodi von Docker?

Container-Modus

Dieser Modus gibt an, dass der neu erstellte Container einen Netzwerk-Namespace mit einem vorhandenen Container teilt, anstatt ihn mit dem Host zu teilen. Der neu erstellte Container erstellt keine eigene Netzwerkkarte und konfiguriert keine eigene IP, sondern teilt die IP, den Portbereich usw. mit einem angegebenen Container. Abgesehen vom Netzwerk sind die beiden Container auch in anderen Aspekten wie Dateisystemen, Prozesslisten usw. isoliert. Die Prozesse der beiden Container können über das lo-Netzwerkkartengerät kommunizieren.

Container-Modus-Diagramm:

Was sind die vier Netzwerkmodi von Docker?

Kein-Modus

Im Kein-Modus verfügt der Docker-Container über einen eigenen Netzwerk-Namespace, es wird jedoch keine Netzwerkkonfiguration für den Docker-Container durchgeführt. Mit anderen Worten: Dieser Docker-Container verfügt nicht über Netzwerkkarten-, IP-, Routing- und andere Informationen. Wir müssen selbst Netzwerkkarten hinzufügen, IP konfigurieren usw. zum Docker-Container.

In diesem Netzwerkmodus verfügt der Container nur über das Lo-Loopback-Netzwerk und keine anderen Netzwerkkarten. Der None-Modus kann beim Erstellen des Containers über --network=none angegeben werden. Diese Art von Netzwerk kann nicht mit dem Internet verbunden werden. Ein geschlossenes Netzwerk kann die Sicherheit des Containers gewährleisten.

Kein-Modus-Diagramm:

Was sind die vier Netzwerkmodi von Docker?

Bridge-Modus

Wenn der Docker-Prozess startet, wird auf dem Host eine virtuelle Bridge mit dem Namen docker0 erstellt und der auf diesem Host gestartete Docker-Container stellt eine Verbindung zu diesem virtuellen Netzwerk her die Brücke. Eine virtuelle Bridge funktioniert ähnlich wie ein physischer Switch, sodass alle Container auf dem Host über den Switch mit einem Layer-2-Netzwerk verbunden sind.

Weisen Sie dem Container eine IP aus dem Docker0-Subnetz zu und legen Sie die Docker0-IP-Adresse als Standard-Gateway des Containers fest. Erstellen Sie ein Paar virtueller Netzwerkkarten-Veth-Paar-Geräte auf dem Host. Docker platziert ein Ende des Veth-Paar-Geräts im neu erstellten Container und nennt es eth0 (die Netzwerkkarte des Containers) und das andere Ende im Host mit einem ähnlichen Namen wie vethxxx. Benennen Sie dieses Netzwerkgerät und fügen Sie es zur Docker0-Brücke hinzu. Sie können es mit dem Befehl brctl show anzeigen.

Der Bridge-Modus ist der Standard-Netzwerkmodus von Docker. Wenn Sie den Parameter --net nicht schreiben, handelt es sich um den Bridge-Modus. Bei Verwendung von docker run -p erstellt Docker tatsächlich DNAT-Regeln in iptables, um die Portweiterleitungsfunktion zu implementieren. Sie können iptables -t nat -vnL zum Anzeigen verwenden. Der

Bridge-Modus ist im Bild unten dargestellt:

Was sind die vier Netzwerkmodi von Docker?

Empfohlenes Lernen: „Docker-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind die vier Netzwerkmodi von Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!