Verständnis der Docker-Netzwerkverbindung
Docker-Container sind selbstständig und isoliert konzipiert, müssen aber dennoch mit der Außenwelt kommunizieren. Docker stellt verschiedene Netzwerk-Treiber bereit, um diese Kommunikation zu ermöglichen, darunter bridge
, host
, overlay
und macvlan
. Die Wahl des Netzwerktreibers hängt von den spezifischen Anforderungen Ihrer Anwendung und der Umgebung ab, in der sie ausgeführt wird.
Das bridge
-Netzwerk ist der Standard-Netzwerk-Treiber in Docker. Es erstellt eine virtuelle Netzwerkbrücke innerhalb des Docker-Daemons, und Container, die an dieses Netzwerk angeschlossen sind, können miteinander und mit dem Host-Computer kommunizieren. Dies ist eine gute Wahl für einfache, ein-Host-Anwendungen.
Der host
-Netzwerkmodus ermöglicht es einem Container, den Netzwerkstapel des Hosts direkt zu verwenden, wodurch das virtuelle Netzwerk umgangen wird. Dies kann für leistungskritische Anwendungen oder wenn Sie auf Low-Level-Netzwerkfunktionen zugreifen müssen, nützlich sein.
Das overlay
-Netzwerk wird verwendet, um mehrere Docker-Hosts zu verbinden, sodass Container auf verschiedenen Hosts miteinander kommunizieren können. Dies wird häufig in einem Docker Swarm- oder Kubernetes-Cluster verwendet.
Das macvlan
-Netzwerk ermöglicht es Ihnen, einem Container eine MAC-Adresse zuzuweisen, sodass er wie eine physische Netzwerkschnittstelle erscheint. Dies kann für ältere Anwendungen nützlich sein, die erwarten, direkt mit dem Netzwerk verbunden zu sein.
Um zu verstehen, wie diese Netzwerk-Treiber funktionieren, betrachten wir ein einfaches Beispiel mit dem bridge
-Netzwerk:
## Erstellen eines neuen Bridge-Netzwerks
docker network create my-bridge-network
## Ausführen eines Containers im Bridge-Netzwerk
docker run -d --name web --network my-bridge-network nginx:latest
## Inspektion des Netzwerks und des Containers
docker network inspect my-bridge-network
docker inspect web
Der Befehl docker network inspect
zeigt Ihnen die Details des Bridge-Netzwerks, einschließlich des IP-Adressbereichs und der daran angeschlossenen Container. Der Befehl docker inspect
zeigt Ihnen die Netzwerk-Einstellungen für den Container web
.
Das Verständnis der Grundlagen der Docker-Netzwerke ist entscheidend für die Fehlerbehebung bei Konnektivitätsproblemen. Im nächsten Abschnitt werden wir untersuchen, wie "externe Konnektivitäts"-Fehler diagnostiziert und behoben werden können.