Benutzerdefinierte Bridge-Netzwerke
Obwohl Docker ein Standard-Bridge-Netzwerk bereitstellt, bietet das Erstellen benutzerdefinierter Bridge-Netzwerke eine bessere Isolierung und Kontrolle über die Kommunikation zwischen den Containern.
- Schauen wir uns zunächst die aktuelle Liste der Docker-Netzwerke an:
docker network ls
Sie sollten eine Ausgabe ähnlich dieser sehen:
NETWORK ID NAME DRIVER SCOPE
296d1b460b17 bridge bridge local
91199fc6ad2e host host local
1078d2c781b6 none null local
- Erstellen wir nun ein benutzerdefiniertes Bridge-Netzwerk:
docker network create my-custom-bridge
- Listen Sie alle Docker-Netzwerke erneut auf, um die Erstellung zu überprüfen:
docker network ls
In der Ausgabe sollte nun my-custom-bridge erscheinen:
NETWORK ID NAME DRIVER SCOPE
296d1b460b17 bridge bridge local
91199fc6ad2e host host local
7215f99d0080 my-custom-bridge bridge local
1078d2c781b6 none null local
- Starten Sie zwei Container im benutzerdefinierten Bridge-Netzwerk und installieren Sie Ping:
docker run --network=my-custom-bridge --name container1 -d nginx
docker run --network=my-custom-bridge --name container2 -d nginx
Nun installieren wir das Ping-Dienstprogramm in beiden Containern. Dies ist notwendig, da das Standard-Nginx-Image kein Ping enthält:
docker exec container1 apt-get update && docker exec container1 apt-get install -y iputils-ping
docker exec container2 apt-get update && docker exec container2 apt-get install -y iputils-ping
- Testen Sie die Kommunikation zwischen den Containern:
docker exec container1 ping -c 4 container2
Sie sollten erfolgreiche Ping-Antworten sehen. Dies beweist, dass Container im selben benutzerdefinierten Bridge-Netzwerk über ihre Containernamen kommunizieren können. Das funktioniert, weil der integrierte DNS-Server von Docker die Containernamen innerhalb desselben Netzwerks in ihre IP-Adressen auflöst.
Falls die Pings fehlschlagen, stellen Sie sicher, dass beide Container laufen (docker ps) und dass das Ping-Tool korrekt installiert wurde.