Docker Networking ist ein zentrales Element, um Container isoliert, performant und sicher miteinander kommunizieren zu lassen. Hinter den einfachen CLI-Befehlen verbirgt sich ein komplexes Zusammenspiel aus iptables oder nftables, NAT-Regeln und dem Connection Tracking (conntrack). Wer diese Mechanismen versteht, kann Probleme schneller lösen und Netzwerke stabil betreiben.
1. Grundlagen des Docker-Netzwerks
Docker erstellt standardmäßig drei Netzwerke: bridge, host und none. Bridge-Netzwerke sind die am häufigsten genutzten, da sie Container isolieren, aber dennoch Kommunikation untereinander ermöglichen.
- Bridge-Netzwerk: Isoliert Container und stellt NAT zur Verfügung
- Host-Netzwerk: Container teilen den Netzwerkstack des Hosts
- None-Netzwerk: Container ohne Netzwerkzugang
2. IP-Adressen und Subnetze
Jedes Bridge-Netzwerk bekommt ein eigenes Subnetz. Docker verwendet private IPv4-Bereiche, standardmäßig 172.17.0.0/16, um Container-Adressen zu vergeben.
Subnetzberechnung
Die IP-Range eines Netzwerks wird über die Subnetzmaske definiert. Beispiel:
Hier können Hostadressen vergeben werden, da die erste Adresse das Netz und die letzte die Broadcast-Adresse ist.
3. NAT (Network Address Translation) in Docker
Docker verwendet NAT, um Container mit privaten IPs ausgehenden Zugriff auf das Internet zu ermöglichen. Das Bridge-Netzwerk übersetzt Container-IP-Adressen auf die Host-IP.
Funktionsweise
- Container sendet Paket an Gateway (Docker-Bridge)
- iptables NAT-Regeln ändern die Quell-IP auf Host-IP
- Antwortpakete werden zurückübersetzt auf die Container-IP
# Anzeigen der NAT-Tabelle
sudo iptables -t nat -L -n -v
4. iptables vs. nftables
Linux verwendet iptables oder nftables für Firewall und NAT. Docker schreibt automatisch Regeln in diese Tabellen.
iptables
- Traditionelle Firewall auf Linux
- Docker fügt Ketten
DOCKERundDOCKER-ISOLATIONhinzu - Erlaubt NAT für Bridge-Netzwerke
nftables
- Modernes Framework, ersetzt iptables
- Kompatibel mit iptables über
iptables-nft - Regeln sind einfacher zu verwalten und performanter
# Anzeigen aller Regeln in nftables
sudo nft list ruleset
5. Docker-Ketten und deren Funktionen
Docker erstellt spezifische iptables-Ketten für die Verwaltung von Container-Netzwerken:
DOCKER: Enthält NAT- und Filterregeln für ContainerDOCKER-ISOLATION-STAGE-1/2: Isoliert Netzwerke untereinanderDOCKER-USER: Platz für eigene Regeln, die vor Docker-Regeln angewendet werden
6. Connection Tracking (conntrack)
conntrack hält Verbindungen zwischen Container-IP und Host-IP nach, um NAT korrekt zu ermöglichen. Jeder ausgehende TCP-Stream wird im Conntrack-Table gespeichert.
Prüfung der aktuellen Verbindungen
# Alle TCP-Verbindungen im Conntrack
sudo conntrack -L -p tcp
Ein überfülltes Conntrack-Table kann zu Verbindungsabbrüchen führen.
7. Port Forwarding und Publish
Damit Container von außen erreichbar sind, werden Ports veröffentlicht:
docker run -d -p 8080:80 nginx
- Host-Port 8080 wird auf Container-Port 80 gemappt
- Docker erstellt iptables NAT-Regeln automatisch
- Port-Konflikte vermeiden, da Host-Port einmalig belegt sein muss
8. Multi-Host-Netzwerke
Mit Overlay-Netzwerken können Container über mehrere Hosts kommunizieren. Docker Swarm oder andere Orchestratoren nutzen VXLAN für verschachtelte Netzwerke.
- Overlay-Netzwerk erstellt Tunnel zwischen Hosts
- IP-Adressen bleiben innerhalb des virtuellen Subnetzes konsistent
- conntrack und NAT arbeiten weiterhin auf jedem Host lokal
9. Troubleshooting und Best Practices
Häufige Probleme:
- “Connection refused” → Prüfen, ob Service läuft und Port korrekt gemappt ist
- Container erreichen sich nicht → Prüfen von Bridge-Subnetz und DOCKER-ISOLATION-Regeln
- NAT funktioniert nicht → iptables/nftables Regeln überprüfen, eventuell Firewall anpassen
- conntrack-Tabelle voll → sysctl-Parameter erhöhen:
net.netfilter.nf_conntrack_max
# Beispiel: Prüfen der Docker Bridge-IP
docker network inspect bridge
10. Sicherheitsaspekte
Docker regelt Netzwerkzugriff automatisch, aber folgende Punkte beachten:
- Vermeiden, dass Container unnötig offene Ports auf dem Host haben
- Eigene Regeln in
DOCKER-USEReinfügen für zusätzliche Firewallkontrolle - NAT-Regeln prüfen, um Traffic-Isolation zu gewährleisten
11. Fazit
Ein tiefes Verständnis von iptables/nftables, NAT und conntrack ist essenziell für stabile Docker-Netzwerke. Nur wer diese Mechanismen kennt, kann Networking-Probleme effizient lösen, Sicherheit gewährleisten und die Performance von Containern optimieren.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











