Benutzerdefinierte Docker-Netzwerkimplementierung

Benutzerdefinierte Docker-Netzwerkimplementierung

1. Passen Sie das Netzwerk an, um eine Containerverbindung zu realisieren

Vier Arten von Netzwerkmodi. Verwenden Sie Docker Network LS, um den Docker-Netzwerkmodus anzuzeigen

Docker-Netzwerkmodus Konfiguration veranschaulichen
Host-Modus –net=Host Der Container und der Host teilen sich den Netzwerk-Namespace.
Containermodus –net=Container:NAME_oder_ID Der Container teilt den Netzwerk-Namespace mit einem anderen Container. Ein Pod in Kubernetes besteht aus mehreren Containern, die sich einen Netzwerk-Namespace teilen.
Keiner-Modus –net=keine Der Container verfügt über einen unabhängigen Netzwerk-Namespace, es werden jedoch keine Netzwerkeinstellungen daran vorgenommen, wie etwa die Zuweisung von Veth-Paaren und Bridge-Verbindungen, die Konfiguration der IP usw.
Bridge-Modus –net=Brücke Bridge-Modus (dieser Modus ist die Standardeinstellung)

–net=bridge Dies ist der Standardwert für die Verbindung mit der Standardbrücke.

–net=host weist Docker an, das Containernetzwerk nicht in einen isolierten Namespace zu stellen, das heißt, das Netzwerk nicht innerhalb des Containers zu containerisieren. An diesem Punkt verwendet der Container das Netzwerk des lokalen Hosts und hat vollen Zugriff auf die lokale Hostschnittstelle. Der Containerprozess kann wie andere Root-Prozesse auf dem Host Low-Range-Ports öffnen, auf lokale Netzwerkdienste wie D-Bus zugreifen und dem Container ermöglichen, Dinge auszuführen, die das gesamte Hostsystem betreffen, wie etwa den Neustart des Hosts. Verwenden Sie diese Option daher mit Vorsicht. Wenn --privileged=true weiterhin verwendet wird, darf der Container den Netzwerkstapel des Hosts direkt konfigurieren.

–net=container:NAME_oder_ID weist Docker an, den neu erstellten Containerprozess in den Netzwerkstapel eines vorhandenen Containers einzufügen. Der neue Containerprozess hat sein eigenes Dateisystem, seine eigene Prozessliste und seine eigenen Ressourcenbeschränkungen, teilt sich aber Netzwerkressourcen wie IP-Adressen und Ports mit dem vorhandenen Container. Die beiden Prozesse können direkt über die lo-Loopback-Schnittstelle kommunizieren.

–net=none weist Docker an, den neuen Container in einen isolierten Netzwerkstapel zu legen, aber keine Netzwerkkonfiguration vorzunehmen. Anschließend können die Benutzer die Konfiguration selbst durchführen.

Benutzerdefiniertes Netzwerk

# --driver bridge bridge mode# --subnet 192.168.0.0/16 subnet segment# --gateway 192.168.0.1 gateway# mynet network namedocker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

Bildbeschreibung hier einfügen

Benutzerdefinierte Netzwerkinformationen anzeigen:

Docker-Netzwerk inspizieren Mynet 

Bildbeschreibung hier einfügen

Erstellen eines Containers in einem benutzerdefinierten Netzwerk

docker run -d -P --name tomcat01-net-01 --net mynet tomcat
docker run -d -P --name tomcat01-net-02 --net mynet tomcat

Bildbeschreibung hier einfügen

Überprüfen Sie die benutzerdefinierten Netzwerkinformationen erneut: Die beiden neu erstellten Container werden dem Netzwerk hinzugefügt.

Bildbeschreibung hier einfügen

Ping-Test zwischen Containern anhand ihrer Namen

tomcat01-net-01 pingt tomcat01-net-02 an:

Bildbeschreibung hier einfügen

tomcat01-net-02 pingt tomcat01-net-01:

Bildbeschreibung hier einfügen

Jetzt können Container sich gegenseitig anpingen, ohne --link zu verwenden, und Container können miteinander kommunizieren.

2. Netzwerkkonnektivität

Bedarfsanalysediagramm

Bildbeschreibung hier einfügen

Erstellen Sie zwei Container, tomcat01 und tomcat02:

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat

Bildbeschreibung hier einfügen

Offensichtlich ist es nicht möglich, direkt zu pingen. Sie müssen zuerst den Container tomcat01 mit dem Mynet-Netzwerk verbinden.

Docker-Netzwerkverbindung

Der Befehl „Docker Network Connect“ wird verwendet, um einen Docker-Container mit einem Netzwerk zu verbinden. Sie können den Containernamen oder die Container-ID verwenden.

Verwendung:

Docker-Netzwerkverbindung [OPTIONEN] NETZWERKCONTAINER

Verbinden Sie den Container tomcat01 mit dem Mynet-Netzwerk:

Docker-Netzwerk verbinden Mynet Tomcat01

Zeigen Sie die Netzwerkinformationen von mynet an: docker inspect mynet

Bildbeschreibung hier einfügen

tomcat01 ist bereits mit dem Mynet-Netzwerk verbunden, ebenso wie tomcat01-net-tomcat01 und tomcat01-net-tomcat02.

An diesem Punkt wurde tomcat01 mit den beiden Containern im mynet-Netzwerk verbunden. Da sich die drei Container im selben Netzwerk befinden, können sie natürlich miteinander kommunizieren:

Bildbeschreibung hier einfügen

Ein Container, zwei Netzwerke:

Zeigen Sie die Metadaten von tomcat01 an: docker inspect tomcat01

Bildbeschreibung hier einfügen

Nachdem tomcat01 mit dem benutzerdefinierten Mynet-Netzwerk verbunden ist, gibt es zwei Netzwerke.

Dies ist das Ende dieses Artikels über die benutzerdefinierte Netzwerkimplementierung in Docker. Weitere relevante Inhalte zum Docker-Netzwerk finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Docker-Netzwerkmodus und Konfigurationsmethode
  • Docker erstellt ein benutzerdefiniertes Netzwerk, um eine feste Container-IP-Adresse zu erhalten
  • Erläuterung der Docker Compose-Netzwerkeinstellungen

<<:  Eine kurze Analyse der Verwendung von HTML-Float

>>:  CSS3 realisiert den Effekt der kontinuierlichen Dreiecksvergrößerung

Artikel empfehlen

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11

In diesem Artikel finden Sie das Installations-Tu...

Vue implementiert einen einfachen Laufschrifteffekt

In diesem Artikel wird der spezifische Code von V...

Optimierung der MySQL 4G-Speicherserverkonfiguration

Da die Anzahl der Besuche auf der Website des Unt...

Interviewer stellen häufig Fragen zum Lebenszyklus von React

React-Lebenszyklus Zwei Bilder zum besseren Verst...

Multiservice-Image-Packaging-Vorgang von Dockerfile unter Aufsicht

Schreiben einer Docker-Datei Konfigurieren Sie di...

Spezifische Verwendung von MySQL-Fensterfunktionen

Inhaltsverzeichnis 1. Was ist eine Fensterfunktio...

Manuelles Implementieren des Eingabefelds für den js-SMS-Bestätigungscode

Vorwort Dieser Artikel beschreibt eine allgemeine...

Zwei Implementierungscodes der programmgesteuerten Navigation mit Vue-Router

Zwei Möglichkeiten zum Navigieren auf der Seite D...

So nummerieren Sie die Ergebnisse von MySQL-Abfragedaten automatisch

Vorwort Tatsächlich bin ich noch nie auf eine Sit...

Tatsächlicher Datensatz zur Wiederherstellung der MySQL-Datenbank nach Zeitpunkt

Einführung: MySQL-Datenbankwiederherstellung nach...