CodeGym /Kurse /Docker SELF /Hauptnetzwerk-Treiber von Docker

Hauptnetzwerk-Treiber von Docker

Docker SELF
Level 17 , Lektion 0
Verfügbar

1.1 Netzwerk-Treiber Bridge

Netzwerk-Treiber von Docker ermöglichen es Containern, miteinander und mit externen Netzwerken zu kommunizieren. Docker bietet mehrere Netzwerk-Treiber, von denen jeder seine eigenen Besonderheiten hat und für bestimmte Anwendungsfälle geeignet ist. In dieser Vorlesung betrachten wir vier Hauptnetzwerk-Treiber: bridge, host, none und overlay.

Der Netzwerk-Treiber bridge ist der Standardnetzwerk-Treiber in Docker. Er erstellt ein privates internes Netzwerk, in dem Container miteinander kommunizieren können. Dieses Netzwerk ist vom externen Netzwerk des Hosts isoliert.

Besonderheiten:

  • Container, die mit dem bridge-Netzwerk verbunden sind, können über IP-Adressen miteinander kommunizieren.
  • Externe Netzwerke können nicht direkt mit Containern im bridge-Netzwerk kommunizieren, es sei denn, Port-Weiterleitung ist konfiguriert.
  • Einfach zu verwenden für lokale Entwicklungs- und Testumgebungen.

Beispiel zur Verwendung:

Wenn ein Container ohne Netzwerkspezifikation erstellt wird, wird er automatisch mit dem bridge-Netzwerk verbunden.

Terminal

docker run -d --name my_container nginx 

Zur Konfiguration der Port-Weiterleitung wird das Flag -p verwendet.

Terminal

docker run -d -p 8080:80 --name my_container nginx 

1.2 Netzwerk-Treiber Host

Der Netzwerk-Treiber host erlaubt dem Container, direkt den Netzwerk-Stack der Host-Maschine zu verwenden. Das bedeutet, dass der Container die gleiche IP-Adresse wie der Host hat und alle Netzwerk-Interfaces des Hosts nutzen kann.

Merkmale:

  • Container, die den Netzwerk-Treiber host verwenden, arbeiten schneller, da die Overheads für die Netzwerk-Virtualisierung reduziert werden.
  • Container haben Zugriff auf die gleichen Netzwerk-Interfaces wie der Host, was das Sicherheitsrisiko erhöhen kann.
  • Anwendbar für Szenarien, in denen hohe Netzwerkleistung oder spezifische Netzwerk-Konfigurationen erforderlich sind.

Beispiel für Verwendung:

Terminal

docker run -d --network host --name my_container nginx 

1.3 Netzwerk-Treiber None

Der Netzwerk-Treiber none deaktiviert alle Netzwerk-Funktionalitäten des Containers. Ein Container, der mit dem Netzwerk none verbunden ist, hat keine Netzwerk-Schnittstelle, was ihn vollständig von anderen Containern und Netzwerken isoliert.

Merkmale:

  • Komplette Isolation des Containers von allen Netzwerken.
  • Nützlich für Container, die kein Netzwerk benötigen, z. B. zum Ausführen von Aufgaben, die nicht netzwerkabhängig sind.

Beispiel für Verwendung:

Terminal

docker run -d --network none --name my_container busybox 

1.4 Netzwerktreiber Overlay

Der Netzwerktreiber overlay wird verwendet, um ein verteiltes Netzwerk zu erstellen, das mehrere Docker-Hosts umfasst. Dieser Treiber wird häufig in Docker Swarm oder Kubernetes eingesetzt, um die Netzwerkkommunikation zwischen Containern auf verschiedenen Hosts zu gewährleisten.

Eigenschaften:

  • Ermöglicht die Kommunikation zwischen Containern auf verschiedenen Hosts.
  • Erfordert eine konfigurierte Clusterbildung wie Docker Swarm.
  • Erlaubt das Erstellen virtueller Netzwerke über bestehende Netzwerke, wodurch ein hohes Maß an Isolation und Sicherheit gewährleistet wird.

Beispiel für Verwendung:

Um den overlay-Treiber zu verwenden, muss zunächst ein Docker-Swarm-Cluster erstellt werden.

1. Docker Swarm initialisieren:

Terminal

docker swarm init

2. Overlay-Netzwerk erstellen:

Terminal

docker network create -d overlay my_overlay_network 

3. Container starten und mit dem overlay-Netzwerk verbinden:

Terminal

docker service create --name my_service --network my_overlay_network nginx 

1.5 Vergleich von Netzwerk-Treibern

Vergleich verschiedener Netzwerk-Treiber

Netzwerk-Treiber Isolation Leistung Anwendbarkeit Besonderheiten
bridge Hoch Mittel Lokale Netzwerke Standardmäßig isoliertes Netzwerk
host Niedrig Hoch Leistung Gemeinsamer Netzwerk-Stack mit dem Host
none Vollständig Höchste Isolation Vollständige Netzwerktrennung
overlay Hoch Hoch Verteilte Netzwerke Kommunikation zwischen Containern auf verschiedenen Hosts

Verwendung von Netzwerk-Treibern

  • Bridge: Verwende es für lokale Anwendungen und Tests, wenn Container miteinander interagieren müssen, aber vom externen Netzwerk isoliert sein sollen.
  • Host: Nutze es für Anwendungen, die hohe Netzwerkleistung oder spezielle Netzwerkkonfigurationen erfordern, bei denen Netzwerkisolation nicht die Priorität ist.
  • None: Verwende es für vollständig isolierte Container, die keine Netzwerkintegration benötigen.
  • Overlay: Nutze es für verteilte Anwendungen, die in einem Cluster ausgeführt werden, um die Kommunikation zwischen Containern auf unterschiedlichen Hosts zu ermöglichen.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION