Durch Hinzufügen des Schlüsselworts extra_hosts in docker-compose.yml werden Daten in die Datei /etc/hosts des Containers geschrieben. extra_hosts Fügen Sie eine Hostnamenzuordnung hinzu. zusätzliche_hosts:
Der Eintrag wird in /etc/hosts erstellt:
Beachten: Wenn es auf die lokale Maschine zeigt, schreiben Sie nicht die IP des Containers (da sich die IP nach dem Neustart ändert, es sei denn, Sie legen eine feste IP für den Container fest), sondern die IP des Hosts, z. B. 192.168.xxx.xxx Ergänzung: Docker-Netzwerk: Host-Modus Wenn wir bereit sind, die Docker-Technologie auf Szenarien auf Produktionsebene anzuwenden, müssen wir viel über Netzwerke wissen. Die Netzwerkfunktion ist ein relativ schwacher Teil von Docker. Wir müssen die Netzwerkkenntnisse von Docker verstehen, um höhere Netzwerkanforderungen erfüllen zu können. Dieser Abschnitt bietet zunächst eine theoretische Einführung in das Hostmodell im Docker-Netzwerkmodell und hilft Ihnen dann anhand praktischer Beispiele dabei, das Docker-Netzwerkmodell besser zu verstehen. Docker-NetzwerkWenn Sie Docker installieren, werden automatisch drei Netzwerke erstellt. Sie können diese Netzwerke mit dem Befehl „Docker Network ls“ auflisten: Docker-Netzwerk ls Das Ergebnis sollte wie folgt aussehen NETZWERK-ID-NAME TREIBER-UMFANG 594430d2d4bb Brücke Brücke lokal d855b34c5d51 Host Host lokal b1ecee29ed5e keine null lokal Docker verfügt über diese drei integrierten Netzwerke und beim Ausführen eines Containers können Sie sie verwenden, um anzugeben, mit welchen Netzwerken der Container eine Verbindung herstellen soll. Wenn wir Docker Run verwenden, um einen Docker-Container zu erstellen, können wir die Flag-Option --network verwenden, um den Netzwerkmodus des Containers anzugeben. Docker verfügt über die folgenden vier Netzwerkmodi: Hostmodus: Verwenden Sie zur Angabe --net=host. Keiner-Modus: Verwenden Sie zur Angabe --net=none. Bridge-Modus: Verwenden Sie --net=bridge, um die Standardeinstellung anzugeben. Containermodus: Verwenden Sie zur Angabe --net=container:NAME_oder_ID. Host-ModusDocker verwendet die Namespaces-Technologie von Linux, um Ressourcen zu isolieren, wie etwa PID-Namespaces zum Isolieren von Prozessen, Mount-Namespaces zum Isolieren von Dateisystemen und Network-Namespaces zum Isolieren von Netzwerken. Ein Netzwerk-Namespace bietet eine unabhängige Netzwerkumgebung, einschließlich Netzwerkkarten, Routing, Iptable-Regeln usw., die von anderen Netzwerk-Namespaces isoliert sind. Der Host-Modus ähnelt dem Bridge-Modus von VMware. Er befindet sich im selben Netzwerk wie die Host-Maschine, hat aber keine unabhängige IP-Adresse. Einem Docker-Container wird grundsätzlich ein unabhängiger Netzwerk-Namespace zugewiesen. Wenn beim Starten des Containers jedoch der Hostmodus verwendet wird, erhält der Container keinen unabhängigen Netzwerk-Namespace, sondern teilt einen Netzwerk-Namespace mit dem Host. Der Container virtualisiert nicht seine eigene Netzwerkkarte, konfiguriert nicht seine eigene IP usw., sondern verwendet die IP und den Port des Hosts. Wie in der folgenden Abbildung dargestellt: Der Container und der Host befinden sich im selben Netzwerk-Namespace und verwenden denselben Netzwerkprotokollstapel. Der Container kann alle Netzwerkschnittstellen des Hosts direkt verwenden. FallüberprüfungHost-Link-Schnittstelle anzeigen IP-Adresse Die IP des Cloud-Umgebungshosts auf der rechten Seite ist {host0.ip}/24. Starten Sie den Nginx-Container im Hostmodus und lauschen Sie seinem TCP80-Port. Verwenden Sie den Hostparameter --net, um das Netzwerkmodell anzugeben, das den Hostmodus verwenden soll docker run --name=nginx --net=host -p 80:80 -d nginx Überprüfen Sie die Container-Link-Schnittstelle, die mit dem Host übereinstimmt docker exec -it nginx cat /etc/hosts Wenn die Außenwelt zu diesem Zeitpunkt auf die Anwendung im Container zugreifen möchte, verwenden Sie einfach {host0.ip}:80 ohne NAT-Konvertierung, als würde es direkt auf dem Hostcomputer ausgeführt. Andere Aspekte des Containers, etwa das Dateisystem und die Prozessliste, sind jedoch weiterhin vom Hostcomputer isoliert. curl {host0.ip} ZusammenfassenDer Hostmodus ist einfach und leistungsstark. Das Netzwerkmodell im Hostmodus ist der einfachste Modus mit der geringsten Latenz. Der Containerprozess kommuniziert direkt mit der Host-Netzwerkschnittstelle, was der Leistung der physischen Maschine entspricht. Der Host unterstützt die Selbstkonfiguration und -verwaltung des Netzwerks nicht und alle Container des Hosts verwenden dieselbe IP. Darüber hinaus ist es der Nutzung der Hostressourcen nicht förderlich. Dieser Modus kann verwendet werden, wenn hohe Anforderungen an die Netzwerkleistung gestellt werden. Andernfalls sollten andere Modi verwendet werden Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: So verstehen Sie die semantische HTML-Struktur
>>: Vue implementiert zwei Methoden zur Steuerung der Routing-Berechtigung
Vorwort ActiveMQ ist der beliebteste und leistung...
pthread_create-Funktion Funktionseinführung pthre...
Dieser Artikel wurde auf GitHub https://github.co...
Manchmal müssen Sie bei der Arbeit ein Remote-Deb...
In diesem Artikelbeispiel wird der spezifische Co...
Lassen Sie uns keine weitere Zeit verschwenden un...
In unserer täglichen Arbeit kommen wir oft mit Da...
Beim Erstellen eines Formulars in einem aktuellen...
1. Fügen Sie am Anfang des Stylesheets einen Komme...
Abhängigkeit vom Wissen Grundlagen der Go-Cross-K...
In diesem Artikel finden Sie das grafische Tutori...
Anforderungen: Die PC-Seite und die mobile Seite ...
<br />In diesem Artikel wurden die verschied...
Hintergrund: Tablespace: Alle INNODB-Daten werden...
Wie können Sie also nach der Registrierung eines ...