1. Docker installieren Die Meldung „Abgeschlossen“ wird angezeigt und zeigt damit an, dass die Installation abgeschlossen ist. 2. Starten Sie den Docker-Dienst Dienst Docker starten 3. Docker-Start einrichten chkconfig Docker ein 4. Grundlegende Informationsansicht Docker-Version 5. Wenn Sie deinstallieren möchten, lautet der Befehl wie folgt: Wenn wir Docker Run verwenden, um einen Docker-Container zu erstellen, können wir die Option --net verwenden, um den Netzwerkmodus des Containers anzugeben. Docker verfügt über die folgenden vier Netzwerkmodi: Hostmodus, angegeben mit --net=host. Im Folgenden werden die einzelnen Netzwerkmodi von Docker vorgestellt. 1 Host-Modus Format: Wie wir alle wissen, verwendet Docker die Namespaces-Technologie von Linux, um Ressourcen zu isolieren, wie z. B. PID-Namespaces, um Prozesse zu isolieren, Mount-Namespaces, um Dateisysteme zu isolieren, und Network-Namespaces, um Netzwerke zu isolieren. Ein Netzwerk-Namespace bietet eine unabhängige Netzwerkumgebung, einschließlich Netzwerkkarten, Routing, Iptable-Regeln usw., die von anderen Netzwerk-Namespaces isoliert sind. 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. 2 Container-Modus Format: Nachdem Sie den Host-Modus verstanden haben, ist auch dieser Modus leicht zu verstehen. 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. Ebenso sind mit Ausnahme des Netzwerks auch andere Aspekte der beiden Container, wie etwa das Dateisystem und die Prozessliste, noch immer isoliert. Die Prozesse der beiden Container können über das Lo-Netzwerkkartengerät kommunizieren. 3 Keiner-Modus Format: Dieser Modus unterscheidet sich von den beiden vorherigen. In diesem 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 hat keine Netzwerkkarte, IP, Routing und andere Informationen. Wir müssen Netzwerkkarten hinzufügen und die IP für den Docker-Container selbst konfigurieren. 4-Brücken-Modus Der Bridge-Modus ist die Standardnetzwerkeinstellung für Docker. Dieser Modus weist jedem Container einen Netzwerk-Namespace zu, legt eine IP-Adresse usw. fest und verbindet einen Docker-Container auf einem Host mit einer virtuellen Bridge. Im Folgenden liegt der Schwerpunkt auf diesem Modus. 4.1 Bridge-Modus-Topologie Beim Starten des Docker-Servers wird auf dem Host eine virtuelle Brücke mit dem Namen docker0 erstellt und die auf diesem Host gestarteten Docker-Container werden mit dieser virtuellen Brücke verbunden. Die virtuelle Brücke funktioniert ähnlich wie ein physischer Switch, sodass alle Container auf dem Host über den Switch mit einem Layer-2-Netzwerk verbunden sind. Der nächste Schritt besteht darin, dem Container eine IP zuzuweisen. Docker wählt aus dem in RFC1918 definierten privaten IP-Segment eine IP-Adresse und ein Subnetz, die sich von denen des Hostcomputers unterscheiden, und weist es docker0 zu. Der mit docker0 verbundene Container wählt aus diesem Subnetz eine freie IP. Beispielsweise verwendet Docker im Allgemeinen das Netzwerksegment 172.17.0.0/16 und weist der Docker0-Brücke 172.17.42.1/16 zu (Docker0 kann mit dem Befehl ifconfig auf dem Host angezeigt werden. Es kann als Verwaltungsschnittstelle der Brücke betrachtet werden und wird als virtuelle Netzwerkkarte auf dem Host verwendet). Die Netzwerktopologie in einer Einzelcomputerumgebung ist wie folgt und die Hostadresse ist 10.10.101.105/24. Der Vorgang, mit dem Docker die obige Netzwerkkonfiguration abschließt, läuft ungefähr wie folgt ab: 1. Erstellen Sie auf dem Host ein Paar virtueller Netzwerkkarten (Veth-Paargeräte). Veth-Geräte treten immer paarweise auf. Sie bilden einen Datenkanal. Daten kommen von einem Gerät herein und kommen von einem anderen Gerät heraus. Daher werden veth-Geräte häufig verwendet, um zwei Netzwerkgeräte zu verbinden. 2. Docker platziert ein Ende des Veth-Paargeräts im neu erstellten Container und nennt es eth0. Das andere Ende wird im Host platziert und beispielsweise veth65f9 genannt. Dieses Netzwerkgerät wird der Docker0-Brücke hinzugefügt, die über den Befehl brctl show angezeigt werden kann. 3. Weisen Sie dem Container eine IP aus dem Subnetz Docker0 zu und legen Sie die Docker0-IP-Adresse als Standard-Gateway für den Container fest. 4.2 Kommunikation zwischen Containern im Bridge-Modus Im Bridge-Modus können Container, die mit derselben Bridge verbunden sind, miteinander kommunizieren (aus Sicherheitsgründen können Sie die Kommunikation zwischen ihnen auch verbieten, indem Sie --icc=false in der Variable DOCKER_OPTS festlegen, sodass nur --link die Kommunikation zwischen zwei Containern ermöglichen kann). Diese Regel konvertiert die Quelladresse von Paketen mit der Quelladresse 172.17.0.0/16 (dh vom Docker-Container generierte Pakete), die nicht von der Docker0-Netzwerkkarte gesendet werden, in die Adresse der Host-Netzwerkkarte. Das ist vielleicht nicht leicht zu verstehen, deshalb möchte ich Ihnen ein Beispiel geben. Angenommen, der Host hat eine Netzwerkkarte namens eth0, die IP-Adresse ist 10.10.101.105/24 und das Gateway ist 10.10.101.254. Pingen Sie Baidu (180.76.3.151) von einem Container auf dem Host mit der IP 172.17.0.1/16. Das IP-Paket wird zuerst vom Container an sein Standard-Gateway Docker0 gesendet. Nachdem das Paket Docker0 erreicht hat, erreicht es auch den Host. Anschließend wird die Routing-Tabelle des Hosts abgefragt und es wird festgestellt, dass das Paket vom eth0 des Hosts an das Gateway 10.10.105.254/24 des Hosts gesendet werden soll. Das Paket wird dann an eth0 weitergeleitet und von eth0 versendet (die ip_forward-Weiterleitung des Hosts sollte aktiviert sein). Zu diesem Zeitpunkt werden die oben genannten Iptable-Regeln wirksam, führen eine SNAT-Konvertierung für das Paket durch und ändern die Quelladresse in die Adresse von eth0. Auf diese Weise wird dieses Paket aus Sicht der Außenwelt von 10.10.101.105 gesendet und der Docker-Container ist für die Außenwelt unsichtbar. Überprüfen Sie dann die Änderungen in den Iptable-Regeln und suchen Sie eine zusätzliche Regel: Diese Regel führt eine DNAT-Konvertierung des vom Host eth0 empfangenen TCP-Datenverkehrs mit Zielport 80 durch und sendet den Datenverkehr an 172.17.0.5:80, den Docker-Container, den wir oben erstellt haben. Daher muss die Außenwelt nur auf 10.10.101.105:80 zugreifen, um auf die Dienste im Container zuzugreifen. Benutzerdefinierter Modus Benutzer können das Netzwerk über Docker-Netzwerktreiber oder andere Netzwerktreiber anpassen. Sie können mehrere Container mit demselben Netzwerk verbinden. Sobald die Container mit einem benutzerdefinierten Netzwerk verbunden sind, können sie über ihre jeweiligen IP-Adressen und Hostnamen miteinander kommunizieren. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: MySQL-Sequenz AUTO_INCREMENT ausführliche Erklärung und Beispielcode
>>: js einfacher und grober Beispielcode zum Veröffentlichen und Abonnieren
1. Zusätzlich zum Standardport 8080 versuchen wir...
Vorwort In diesem Artikel wird erklärt, wie Sie i...
Vorwort Ich habe mir die zuvor veröffentlichten A...
Vor kurzem wollte ich Goaccess verwenden, um Ngin...
Das Seitenlayout war mir schon immer ein Anliegen...
MySQL 5.7.18 Installation und Problemübersicht. I...
Der spezifische Code lautet wie folgt: <!DOCTY...
RPM-Paketverwaltung Ein Verpackungs- und Installa...
HTML5 fügt weitere semantische Tags hinzu, wie et...
Der Docker-Daemon verwendet HTTP_PROXY , HTTPS_PR...
Einführung Im vorherigen Artikel haben wir Redis ...
wangEditor ist ein webbasierter Rich-Text-Editor,...
Inhaltsverzeichnis Vorwort Statischer Umfang vs. ...
Inhaltsverzeichnis Vorherige 1. Was ist Setup-Syn...
<!DOCTYPE html> <html lang="de"...