Erstellen eines einfachen Bridge-Netzwerks
In diesem Schritt lernen wir, wie man in Docker ein einfaches Bridge-Netzwerk erstellt. Ein Bridge-Netzwerk ist der Standard-Netzwerktyp für Container. Container, die an dasselbe Bridge-Netzwerk angeschlossen sind, können miteinander kommunizieren, während sie von Containern auf anderen Bridge-Netzwerken und dem Netzwerk des Hosts isoliert sind.
Zunächst listen wir die vorhandenen Docker-Netzwerke auf, um die Standard-Netzwerke zu sehen.
docker network ls
Sie sollten einige Standard-Netzwerke wie bridge
, host
und none
sehen. Das bridge
-Netzwerk ist das, mit dem wir arbeiten werden.
Jetzt erstellen wir ein neues Bridge-Netzwerk. Wir nennen es my-bridge-network
.
docker network create my-bridge-network
Dieser Befehl erstellt ein neues Bridge-Netzwerk mit Standard-Einstellungen. Docker weist diesem Netzwerk automatisch ein Subnetz und ein Gateway zu.
Um zu überprüfen, ob das Netzwerk erfolgreich erstellt wurde, listen wir die Docker-Netzwerke erneut auf.
docker network ls
Sie sollten jetzt my-bridge-network
in der Liste sehen.
Als Nächstes untersuchen wir das neu erstellte Netzwerk, um seine Details, einschließlich des von Docker zugewiesenen Subnetzes und Gateways, zu sehen.
docker network inspect my-bridge-network
Die Ausgabe dieses Befehls liefert detaillierte Informationen über das Netzwerk, wie seine ID, den Treiber (der bridge
sein sollte) und das Subnetz und Gateway im Abschnitt IPAM
.
Jetzt starten wir einen Container und verbinden ihn mit unserem neuen Netzwerk. Wir verwenden für dieses Beispiel das alpine
-Image. Wenn Sie das alpine
-Image nicht lokal haben, lädt Docker es automatisch herunter.
docker run -d --name container1 --network my-bridge-network alpine sleep infinity
Dieser Befehl startet einen Container namens container1
im detached-Modus (-d
), verbindet ihn mit my-bridge-network
(--network my-bridge-network
) und lässt ihn laufen, indem er den Befehl sleep infinity
ausführt.
Um zu überprüfen, ob der Container läuft und mit dem richtigen Netzwerk verbunden ist, können Sie den Container untersuchen.
docker inspect container1
In der Ausgabe suchen Sie nach dem Abschnitt Networks
. Sie sollten my-bridge-network
aufgeführt sehen, zusammen mit der IP-Adresse, die dem Container innerhalb dieses Netzwerks zugewiesen wurde.
Schließlich starten wir einen weiteren Container und verbinden ihn mit demselben Netzwerk, um die Kommunikation zwischen ihnen zu demonstrieren.
docker run -d --name container2 --network my-bridge-network alpine sleep infinity
Jetzt sind sowohl container1
als auch container2
mit my-bridge-network
verbunden. Sie sollten in der Lage sein, miteinander zu kommunizieren, indem sie ihre Containernamen oder IP-Adressen innerhalb des Netzwerks verwenden.
Um die Kommunikation zu testen, können wir einen Befehl in container1
ausführen, um container2
zu pingen. Zunächst müssen wir das iputils
-Paket in den Alpine-Containern installieren, um den ping
-Befehl zu verwenden.
docker exec container1 apk add --no-cache iputils
docker exec container2 apk add --no-cache iputils
Jetzt pingen wir container2
von container1
aus.
docker exec container1 ping -c 3 container2
Sie sollten erfolgreiche Ping-Antworten sehen, was darauf hinweist, dass die beiden Container auf demselben Bridge-Netzwerk kommunizieren können.