Docker - Netzwerke, Ports, Reverse Proxy und Firewall
Zur Navigation springen
Zur Suche springen
Ein veröffentlichter Docker-Port kann einen Dienst direkt aus dem Internet erreichbar machen. Datenbanken, Verwaltungsoberflächen und interne APIs sollten nicht ohne ausdrücklichen Grund an alle Hostadressen gebunden werden.
Inhaltsverzeichnis
Bestand prüfen
docker compose ps
docker network ls
docker ps --format 'table {{.Names}}\t{{.Ports}}'
ss -lntup
sudo nft list rulesetPrüfen Sie sowohl IPv4 als auch IPv6. Docker kann eigene Firewallregeln anlegen; verlassen Sie sich deshalb nicht ausschließlich auf eine oberflächliche Prüfung der Host-Firewall.
Portbindung verstehen
Eine Bindung wie 8080:80 veröffentlicht den Containerdienst üblicherweise auf Host-Port 8080. Soll ausschließlich ein lokaler Reverse Proxy zugreifen, kann je nach Aufbau eine Bindung an Loopback wie 127.0.0.1:8080:80 geeigneter sein.
Empfohlener Aufbau
- Legen Sie ein internes Netzwerk für Anwendung und Datenbank an.
- Veröffentlichen Sie keine Datenbankports, wenn nur andere Container zugreifen.
- Stellen Sie Webdienste über einen gepflegten Reverse Proxy bereit.
- Terminieren Sie TLS am klar definierten Einstiegspunkt.
- Öffnen Sie in der Host-Firewall nur benötigte Ports.
- Testen Sie Erreichbarkeit von außen und vom Host getrennt.
Typische Fehler
- Datenbank ist weltweit erreichbar
- Entfernen Sie die Portfreigabe, prüfen Sie Zugangsdaten und kontrollieren Sie Protokolle auf Zugriffe.
- Dienst ist trotz Firewall erreichbar
- Prüfen Sie Docker-Regeln, Weiterleitung und die Reihenfolge der nftables-/iptables-Chains.
- Reverse Proxy meldet 502
- Prüfen Sie Containerstatus, Zielport, Netzwerkzuordnung und die Adresse, auf der der Dienst lauscht.

