So verbinden Sie Container mit einem benutzerdefinierten Docker-Netzwerk

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Docker ist ein leistungsstarkes Werkzeug zur Containerisierung von Anwendungen, aber die Verwaltung der Netzwerkverbindungen zwischen den Containern kann eine Herausforderung darstellen. In diesem Tutorial lernen Sie, wie Sie ein benutzerdefiniertes Docker-Netzwerk erstellen und Ihre Container damit verbinden, sodass sie sicher und effizient miteinander kommunizieren können.

Einführung in Docker-Netzwerke

Docker-Netzwerke sind ein entscheidender Bestandteil des Docker-Ökosystems, die es Containern ermöglichen, miteinander und mit der Außenwelt zu kommunizieren. Im Kontext von Docker ist ein Netzwerk ein virtuelles Netzwerk, das es Containern ermöglicht, Verbindungen herzustellen und Daten auszutauschen. Docker bietet verschiedene integrierte Netzwerk-Treiber, jeder mit eigenen Funktionen und Anwendungsfällen.

Die am häufigsten verwendeten Docker-Netzwerk-Treiber sind:

  1. Bridge-Netzwerk: Der Standard-Netzwerk-Treiber in Docker, der eine virtuelle Bridge auf dem Host-Computer erstellt und es Containern ermöglicht, miteinander und mit dem Host zu kommunizieren.
  2. Host-Netzwerk: Dieser Netzwerkmodus ermöglicht es einem Container, den Netzwerkstapel des Hosts zu verwenden, wodurch die Netzwerkisolierung zwischen Container und Host effektiv aufgehoben wird.
  3. Overlay-Netzwerk: Dieser Netzwerk-Treiber wird für die Multi-Host-Netzwerkinfrastruktur verwendet und ermöglicht es Containern, die auf verschiedenen Docker-Hosts ausgeführt werden, miteinander zu kommunizieren.
  4. Macvlan-Netzwerk: Dieser Netzwerk-Treiber ermöglicht es Ihnen, einem Container eine MAC-Adresse zuzuweisen, wodurch er als physisches Gerät im Netzwerk erscheint.

Das Verständnis dieser Netzwerk-Treiber und ihrer Anwendungsfälle ist entscheidend für die effektive Verwaltung und Verbindung von Containern in einer Docker-Umgebung.

graph LR A[Docker Host] --> B[Bridge Network] B --> C[Container 1] B --> D[Container 2] B --> E[Container 3]

Tabelle 1: Häufige Docker-Netzwerk-Treiber

Treiber Beschreibung
Bridge Der Standard-Netzwerk-Treiber, der eine virtuelle Bridge auf dem Host-Computer erstellt.
Host Ermöglicht es einem Container, den Netzwerkstapel des Hosts zu verwenden, wodurch die Netzwerkisolierung aufgehoben wird.
Overlay Ermöglicht Multi-Host-Netzwerke, sodass Container auf verschiedenen Docker-Hosts kommunizieren können.
Macvlan Weist einem Container eine MAC-Adresse zu, wodurch er als physisches Gerät im Netzwerk erscheint.

Durch das Verständnis der verschiedenen Netzwerk-Treiber und ihrer Anwendungsfälle können Sie Ihre Container in einer Docker-Umgebung effektiv verbinden und verwalten.

Erstellen eines benutzerdefinierten Docker-Netzwerks

Neben den von Docker bereitgestellten Standard-Netzwerk-Treibern können Sie auch eigene benutzerdefinierte Docker-Netzwerke erstellen, um Ihre spezifischen Anforderungen zu erfüllen. Die Erstellung eines benutzerdefinierten Netzwerks ermöglicht Ihnen mehr Kontrolle über die Netzwerkkonfiguration und die Isolation zwischen Ihren Containern.

Erstellen eines benutzerdefinierten Bridge-Netzwerks

Um ein benutzerdefiniertes Bridge-Netzwerk zu erstellen, können Sie den Befehl docker network create verwenden. Hier ist ein Beispiel:

docker network create my-custom-network

Dieser Befehl erstellt ein neues Bridge-Netzwerk mit dem Namen my-custom-network. Sie können das Netzwerk dann mit dem Befehl docker network inspect untersuchen:

docker network inspect my-custom-network

Die Ausgabe enthält Details zum Netzwerk, wie z. B. Subnetz, Gateway und die Liste der an das Netzwerk angeschlossenen Container.

Konfigurieren eines benutzerdefinierten Bridge-Netzwerks

Beim Erstellen eines benutzerdefinierten Bridge-Netzwerks können Sie auch zusätzliche Konfigurationsoptionen wie Subnetz und Gateway angeben. Hier ist ein Beispiel:

docker network create --subnet 172.18.0.0/16 --gateway 172.18.0.1 my-custom-network

Dieser Befehl erstellt ein benutzerdefiniertes Bridge-Netzwerk mit einem Subnetz von 172.18.0.0/16 und einem Gateway von 172.18.0.1.

Verbinden von Containern mit einem benutzerdefinierten Netzwerk

Nachdem Sie ein benutzerdefiniertes Netzwerk erstellt haben, können Sie Container mit der Option --network beim Start eines neuen Containers damit verbinden. Hier ist ein Beispiel:

docker run -d --name my-app --network my-custom-network nginx

Dieser Befehl startet einen neuen Nginx-Container und verbindet ihn mit dem benutzerdefinierten Netzwerk my-custom-network.

Durch die Erstellung und Verwendung benutzerdefinierter Docker-Netzwerke können Sie die Isolation und Sicherheit Ihrer Container verbessern sowie die Verwaltung von netzwerkbezogenen Aufgaben vereinfachen.

Verbinden von Containern mit einem benutzerdefinierten Netzwerk

Nachdem Sie ein benutzerdefiniertes Docker-Netzwerk erstellt haben, wollen wir nun untersuchen, wie Sie Container damit verbinden.

Verbinden von Containern beim Erstellen

Wenn Sie einen neuen Container starten, können Sie das Netzwerk, mit dem er verbunden werden soll, mithilfe der Option --network angeben. Hier ist ein Beispiel:

docker run -d --name my-app --network my-custom-network nginx

Dieser Befehl startet einen neuen Nginx-Container und verbindet ihn mit dem benutzerdefinierten Netzwerk my-custom-network.

Verbinden bestehender Container

Sie können auch bestehende Container mit einem benutzerdefinierten Netzwerk über den Befehl docker network connect verbinden. Hier ist ein Beispiel:

docker run -d --name my-db mysql
docker network connect my-custom-network my-db

Dieser Befehl startet zuerst einen neuen MySQL-Container und verbindet anschließend den Container my-db mit dem benutzerdefinierten Netzwerk my-custom-network.

Überprüfen der Containerverbindung

Um zu überprüfen, ob die Container mit dem benutzerdefinierten Netzwerk verbunden sind, können Sie den Befehl docker network inspect verwenden:

docker network inspect my-custom-network

Die Ausgabe zeigt die Liste der an das Netzwerk angeschlossenen Container sowie deren IP-Adressen innerhalb des benutzerdefinierten Netzwerks an.

Sie können die Konnektivität zwischen den Containern auch testen, indem Sie die Containernamen oder IP-Adressen innerhalb des benutzerdefinierten Netzwerks verwenden. Beispielsweise können Sie einen Container von einem anderen aus pingen:

docker exec my-app ping my-db

Dieser Befehl pingt den Container my-db vom Container my-app aus, wobei der Containername als Hostname verwendet wird.

Durch die Verbindung von Containern mit einem benutzerdefinierten Docker-Netzwerk können Sie die Isolation und Sicherheit Ihrer Anwendung verbessern und die Verwaltung von netzwerkbezogenen Aufgaben vereinfachen.

Zusammenfassung

Am Ende dieses Tutorials verfügen Sie über ein fundiertes Verständnis der Erstellung eines benutzerdefinierten Docker-Netzwerks und der Verbindung Ihrer Container damit. Dieses Wissen hilft Ihnen, robustere und skalierbarere Docker-basierte Anwendungen zu erstellen, in denen Container problemlos miteinander und mit externen Diensten kommunizieren können.