Es gibt drei Möglichkeiten, Docker-Container miteinander zu verbinden und zwischen ihnen zu kommunizieren:
1. Internes Docker-Netzwerk Einbeziehung des Docker-eigenen Netzwerkstapels. Nach der Installation von Docker erstellt das System eine neue Netzwerkschnittstelle mit dem Namen docker0, die zum Verbinden des Containers und des Hosts verwendet wird. Der IP-Bereich liegt zwischen 172.16 und 172.30. Jedem Docker-Container wird auf dieser Schnittstelle eine IP-Adresse zugewiesen. Jedes Mal, wenn Docker einen Container erstellt, erstellt es eine Reihe miteinander verbundener Netzwerkschnittstellen. Ein Ende ist die eth0-Schnittstelle im Container und das andere Ende wird auf dem Host mit veth benannt. Durch die Bindung jeder veth-Schnittstelle an die Docker0-Brücke erstellt Docker ein virtuelles Subnetz, das vom Host und allen Docker-Containern gemeinsam genutzt wird. Realisieren Sie die Kommunikationsverbindung zwischen dem Container und dem Host. Beachten Sie, dass die veth-Schnittstelle nur vorhanden ist, wenn der Container ausgeführt wird. Nachteile der Verwendung eines internen Netzwerks zur Realisierung der Verbindung:
2. Docker-Netzwerk Verbindungen zwischen Containern werden über Netzwerke hergestellt. Ermöglichen Sie Benutzern, eigene Netzwerke zu erstellen, über die Container miteinander kommunizieren; Es kann zwischen verschiedenen Hosts kommunizieren und die Netzwerkkonfiguration ist flexibler; Sie können Container stoppen, starten oder neu starten, ohne Verbindungen aktualisieren zu müssen. Sie müssen keinen Container im Voraus erstellen und dann eine Verbindung zu ihm herstellen, noch müssen Sie sich Gedanken über die Reihenfolge machen, in der die Container ausgeführt werden. Sie können die Auflösung und Erkennung von Containernamen innerhalb des Netzwerks erhalten. Integriert mit Docker Compose und Swarm; Ein Container, der innerhalb eines Docker-Netzwerks gestartet wird, erkennt alle Container, die in diesem Netzwerk ausgeführt werden. Und speichern Sie die Adressen dieser Container im lokalen DNS über die Datei /etc/hosts. Wenn ein Container neu gestartet wird, wird seine IP-Adresse in der Datei /etc/hosts automatisch aktualisiert. Beim Test fiel auf, dass in der Datei /etc/hosts scheinbar keine neuen Adressen anderer Container vorhanden waren, diese sich aber gegenseitig anpingen konnten. Ein Container kann mehreren Netzwerken gleichzeitig beitreten, sodass sehr komplexe Netzwerkmodelle erstellt werden können;
3. Docker-Link Der Name des Containers muss während des Verknüpfungsvorgangs referenziert werden und er kann nur auf demselben Hostcomputer funktionieren. Wenn Sie den Container mit Docker Run starten, verwenden Sie den Parameter --link, um eine Client-Server-Verbindung zwischen den beiden Containern herzustellen. Es sind zwei Parameter erforderlich, einer ist der Name des Link-Containers und der andere ist der Alias des Links, d. h. --link redis:db. Der verknüpfte Container ist der Dienst und die Verknüpfung ermöglicht dem Dienstcontainer die Kommunikation mit dem Client-Container. Der Client-Container kann direkt auf jeden öffentlichen Port des Service-Containers zugreifen, sodass der Port des Service-Containers dem lokalen Host nicht zugänglich gemacht werden muss, was relativ sicherer ist. Sie können mehrere Client-Container mit demselben Service-Container verknüpfen oder eine Verknüpfung mit mehreren Service-Containern herstellen, indem Sie --link mehrmals angeben. Docker schreibt die Linkinformationen in die Datei /etc/hosts des Containers und in die Umgebungsvariablen, die die Linkinformationen enthalten. Unabhängig von Ihrem Ansatz können Sie einen Web-Anwendungsstapel erstellen, der die folgenden Komponenten enthält:
Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: Detaillierte Erläuterung der MySQL-Replikationsprinzipien und praktischen Anwendungen
1. Aktivieren Sie Prometheus-Telemetriedaten Stan...
Inhaltsverzeichnis Vorwort 1. Iceraven-Browser (F...
Vorwort: In MySQL sollte die Master-Slave-Archite...
Inhaltsverzeichnis Überblick 1. Abhängigkeitsinje...
In diesem Artikelbeispiel wird der spezifische Co...
Einfache Installation von opencv2: conda installi...
Vorwort Das Dateisystem ist für die Organisation ...
Beim Bereitstellen des uwsgi+nginx-Proxys Django ...
Erstellen Sie einen Benutzer: Erstellen Sie den B...
Inhaltsverzeichnis Frage Lösung Frage Es scheint ...
Übersetzt aus der offiziellen Docker-Dokumentatio...
Verwenden Sie div, um eine Maske zu erstellen oder...
Inhaltsverzeichnis 1. Umfang des Blocks 1.1. let ...
Inhaltsverzeichnis 1. Einleitung 1.1 Grundsatz 1....
<br />Originaltext: http://jorux.com/archive...