Docker Netzwerk
Was dieser Artikel über Docker-Netzwerke behandelt
- Welche Netzwerktypen Docker bietet.
- Wie Container sich gegenseitig erreichen.
- Benutzerdefinierte Netzwerke einrichten.
- Unterschied zwischen Bridge, Host und Overlay.
- Tipps für lokale KI-Stacks.
Einleitung: Docker Netzwerk
Docker isoliert Container standardmässig voneinander. Für Multi-Container-Anwendungen wie Ollama, Open WebUI und Datenbanken braucht man aber ein gemeinsames Netzwerk. Docker bietet verschiedene Netzwerk-Treiber, mit denen Container kommunizieren, Ports veröffentlicht werden und externer Zugriff ermöglicht wird. Wer Docker-Netzwerke versteht, vermeidet typische Verbindungsprobleme und baut stabilere Setups.
Dieser Artikel erklärt die wichtigsten Docker-Netzwerktypen und deren Einsatz in lokalen KI-Projekten.
Wichtige Begriffe
- Bridge: Standard-Netzwerk in Docker.
- Host: Container teilt den Netzwerkstack des Hosts.
- Overlay: Netzwerk für Docker Swarm und Cluster.
- None: Keine Netzwerkverbindung.
- DNS: Namensauflösung im Container-Netzwerk.
- Alias: Zusätzlicher Name für einen Container im Netzwerk.
- Port-Mapping: Weiterleitung von Host-Port auf Container-Port.
Standard-Netzwerktypen
Bridge
Jeder Container, der kein Netzwerk angegeben bekommt, landet im Default-Bridge. Dort kann er andere Container über IP erreichen, aber nicht per Name. Benutzerdefinierte Bridge-Netzwerke bieten DNS-Namensauflösung.
Host
Der Container nutzt den Netzwerkstack des Hosts. Keine Isolation, aber maximale Performance. Unter Windows und macOS nicht verfügbar.
None
Keine Netzwerkverbindung. Nur für spezielle Anwendungen.
Overlay
Für Docker Swarm und Cluster. Ermöglicht Kommunikation zwischen Containern auf verschiedenen Hosts.
Benutzerdefinierte Bridge-Netzwerke
docker network create ki-net
Container an Netzwerk anhängen:
docker run -d --name ollama --network ki-net ollama/ollama
docker run -d --name open-webui --network ki-net -e OLLAMA_BASE_URL=http://ollama:11434 ghcr.io/open-webui/open-webui:main
Der Container open-webui kann nun über den Namen ollama auf Ollama zugreifen.
In Docker Compose
services:
ollama:
image: ollama/ollama
networks:
- ki-net
open-webui:
image: ghcr.io/open-webui/open-webui:main
networks:
- ki-net
environment:
- OLLAMA_BASE_URL=http://ollama:11434
networks:
ki-net:
Ports veröffentlichen
docker run -d -p 127.0.0.1:8080:8080 open-webui
Nur der Host-Port 8080 ist erreichbar. Der Container bleibt hinter der Bind-Adresse verborgen.
DNS im Netzwerk
Benutzerdefinierte Bridges bieten eingebautes DNS. Container können sich per Namen ansprechen. Das ist besonders praktisch in Compose-Stacks.
Hostnetzwerk
docker run -d --network host ollama/ollama
Keine Port-Mapping notwendig, der Container lauscht direkt auf Host-Schnittstellen. Weniger sicher, aber manchmal nötig.
Netzwerk isolieren
Container, die nicht miteinander kommunizieren sollen, können in separate Netzwerke gelegt werden:
networks:
front:
back:
Nur gewünschte Dienste bekommen Zugriff auf beide Netze.
Verbindungsprobleme diagnostizieren
docker network ls
docker network inspect ki-net
docker exec -it open-webui ping ollama
Wenn ping fehlschlägt, prüfen, ob beide Container im gleichen Netzwerk sind.
Typische Stolpersteine
- Default-Bridge ohne DNS: Container-Name kann nicht aufgelöst werden.
- Falscher Port: Host-Port und Container-Port verwechseln.
- Falsche Bind-IP:
0.0.0.0anstelle von127.0.0.1. - Container im falschen Netzwerk: Nur IP erreichbar, nicht Name.
- Firewall blockiert: Host-Firewall verhindert externen Zugriff.
- Hostnetzwerk auf macOS/Windows: Nicht verfügbar.
Weiterführende Links und Infos
- BotServ.de Docker Befehle
- BotServ.de Docker Compose
- BotServ.de Docker Reverse Proxy
- BotServ.de Ollama Befehle
FAQ: Docker Netzwerk
Wie erreiche ich einen Container über seinen Namen? Im gleichen benutzerdefinierten Bridge-Netzwerk per DNS-Name.
Was ist der Unterschied zwischen Bridge und Host? Bridge isoliert, Host teilt den Netzwerkstack.
Brauche ich Overlay? Nur für Docker Swarm oder Cluster über mehrere Hosts.
Wie veröffentliche ich Ports sicher?
Am besten nur an 127.0.0.1 binden.
Warum kann Container A Container B nicht erreichen? Möglicherweise sind sie in unterschiedlichen Netzwerken.
Quellen und weiterführende Literatur
- Docker Network Docs: https://docs.docker.com/network/
- Docker Bridge Network: https://docs.docker.com/network/bridge/
- Docker Overlay: https://docs.docker.com/network/overlay/
Zusammenfassung: Docker Netzwerk
Docker-Netzwerke sind essenziell für Multi-Container-Setups. Benutzerdefinierte Bridge-Netzwerke bieten DNS-Namensauflösung und isolieren Dienste sinnvoll. Port-Mappings sollten nur an 127.0.0.1 erfolgen, Host-Netzwerk ist Spezialfall. Wer docker network create, docker network inspect und einfache Verbindungstests nutzt, findet Netzwerkprobleme schnell. Für KI-Stacks mit Ollama, Open WebUI und Datenbanken sind saubere Netzwerke die Grundlage für einen stabilen Betrieb.


