Benutzerdefinierte Bridge-Netzwerke
Während Docker ein Standard-Bridge-Netzwerk bereitstellt, bietet die Erstellung benutzerdefinierter Bridge-Netzwerke eine bessere Isolierung und Kontrolle über die Kommunikation zwischen Containern.
- Zunächst schauen wir uns die aktuelle Liste der Docker-Netzwerke an:
docker network ls
Sie sollten etwas wie Folgendes sehen:
NETWORK ID NAME DRIVER SCOPE
296d1b460b17 bridge bridge local
91199fc6ad2e host host local
1078d2c781b6 none null local
- Jetzt erstellen wir ein benutzerdefiniertes Bridge-Netzwerk:
docker network create my-custom-bridge
- Listen Sie erneut alle Docker-Netzwerke auf, um die Erstellung zu überprüfen:
docker network ls
Sie sollten jetzt my-custom-bridge
in der Ausgabe sehen:
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
Jetzt installieren wir das ping
-Utility in beiden Containern. Dies müssen wir tun, da das Standard-Nginx-Image ping
nicht 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, was zeigt, dass Container im selben benutzerdefinierten Bridge-Netzwerk über ihre Containernamen kommunizieren können. Dies funktioniert, weil Docker's integrierte DNS die Containernamen in ihre IP-Adressen innerhalb desselben Netzwerks auflöst.
Wenn Sie keine erfolgreichen Pings sehen, stellen Sie sicher, dass beide Container laufen (docker ps
) und dass Sie das ping
-Utility korrekt installiert haben.