Netzwerke
Docker-Netzwerke ermöglichen die Kommunikation zwischen Containern und der Aussenwelt. Sie sind essenziell, um verteilte Anwendungen bereitzustellen, Container voneinander zu isolieren oder gezielt zu verbinden.
Sinn und Zweck von Docker-Netzwerken
Container sind standardmässig voneinander isoliert. Docker-Netzwerke bieten eine Möglichkeit, sie sicher miteinander kommunizieren zu lassen. Es gibt verschiedene Netzwerkmodi:
bridge (Standard): Container können untereinander kommunizieren, aber sind von aussen nicht direkt erreichbar.
host: Container nutzt das Netzwerk des Hosts direkt.
none: Keine Netzwerkanbindung.
overlay: Verbindet Container ĂĽber mehrere Hosts hinweg (Swarm Mode erforderlich).
macvlan: Ermöglicht Containern eine direkte Verbindung mit dem physischen Netzwerk.
Docker-Netzwerke verwalten
Netzwerk erstellen
Ein benutzerdefiniertes Netzwerk mit einer bestimmten Subnetzmaske und einem Gateway kann mit folgendem Befehl erstellt werden:
docker network create \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
my-network
Netzwerke anzeigen
Um eine Liste aller Netzwerke anzuzeigen:
docker network ls
Details zu einem bestimmten Netzwerk:
docker network inspect my-network
Container einem Netzwerk zuweisen
Beim Start eines Containers kann dieser einem Netzwerk hinzugefĂĽgt werden:
docker run -d --name my-web-server --network my-network nginx
Einem bereits laufenden Container ein Netzwerk hinzufĂĽgen:
docker network connect my-network my-web-server
Von einem Netzwerk entfernen:
docker network disconnect my-network my-web-server
Interaktion zwischen Containern
Container im selben Netzwerk können sich gegenseitig per Namen erreichen. Zum Beispiel kann ein Container webs-erver
auf einen Container database
zugreifen mit:
ping database
IP-Adressen zuweisen
Docker vergibt standardmässig IP-Adressen per DHCP. Eine feste IP kann beim Start eines Containers gesetzt werden:
docker network create \
--subnet=192.168.1.0/24 \
my-network
docker run -d --network my-network --ip 192.168.1.100 --name my-web-server nginx
WordPress mit PostgreSQL
Hier wird eine WordPress-Umgebung mit einer PostgreSQL-Datenbank in einem benutzerdefinierten Netzwerk erstellt.
Jetzt ist WordPress unter http://localhost:8080
erreichbar und verwendet PostgreSQL als Datenbank.
Docker-Netzwerke sind essenziell, um Container sicher und flexibel miteinander kommunizieren zu lassen. Durch die Verwendung benutzerdefinierter Netzwerke lassen sich IP-Bereiche, Gateway-Adressen und Container-Kommunikation gezielt steuern. Das Beispiel zeigt, wie Anwendungen ohne Docker Compose vernetzt werden können.
Zuletzt aktualisiert
War das hilfreich?