DNS in Docker: Resolver-Probleme erkennen und beheben

DNS-Probleme in Docker führen häufig dazu, dass Container keine anderen Container oder externe Hosts erreichen können. Docker nutzt einen eingebauten DNS-Resolver, der Container-Namen innerhalb von Netzwerken auflöst. Wenn Auflösungen fehlschlagen, kann dies an Netzwerkeinstellungen, fehlerhaften Compose-Dateien oder Konflikten mit dem Host-DNS liegen. In diesem Tutorial zeigen wir praxisnah, wie Sie DNS-Probleme erkennen, analysieren und beheben.

Grundlagen des Docker-DNS

Docker verwendet für Container standardmäßig einen eingebauten DNS-Server:

  • Container in demselben benannten Netzwerk können sich über Service-Namen erreichen
  • Bridge-Netzwerke erzeugen eine eigene interne DNS-Auflösung
  • Overlay-Netzwerke für Swarm nutzen ebenfalls Docker-internes DNS

Extern erreichbare Domains werden über die Host-DNS-Einstellungen aufgelöst, die im Container unter /etc/resolv.conf eingetragen werden.

Überprüfung der DNS-Auflösung im Container

Ein erster Schritt beim Troubleshooting ist die Prüfung, ob der Container DNS-Anfragen korrekt löst:

docker exec -it  ping 
docker exec -it  nslookup 
docker exec -it  dig example.com
  • Interne Container-Namen sollten innerhalb des Netzwerks aufgelöst werden
  • Externe Domains testen, um Host-DNS-Probleme auszuschließen

Überprüfung der /etc/resolv.conf

Die Datei /etc/resolv.conf im Container zeigt, welche DNS-Server verwendet werden:

docker exec -it  cat /etc/resolv.conf
  • Bei Problemen kann es nötig sein, die Host-DNS zu überschreiben
  • In Docker Compose: dns: Eintrag nutzen

Netzwerkeinstellungen prüfen

Falsche Netzwerkzuweisungen verhindern DNS-Auflösung:

docker network ls
docker network inspect 
  • Container müssen im selben benannten Netzwerk sein, um Service-Namen aufzulösen
  • Bridge-Netzwerke für interne Kommunikation verwenden
  • Overlay-Netzwerke erfordern Swarm-Setup und ggf. Routing-Regeln

Docker Compose und DNS

Compose-Dateien ermöglichen gezielte DNS-Konfiguration:

version: "3.9"

services:
  web:
    image: myorg/web:1.0.0
    networks:
      - frontend
    dns:
      - 8.8.8.8
      - 1.1.1.1

networks:
  frontend:
  • Service-Namen werden automatisch intern aufgelöst
  • Externe DNS-Server können überschrieben oder ergänzt werden
  • Hilfreich bei Problemen mit Unternehmens-DNS oder VPNs

Fehleranalyse und Troubleshooting

  • Ping auf Container-IP prüfen: docker exec -it ping
  • DNS-Auflösung testen: nslookup oder dig
  • Überprüfung der Host-DNS: cat /etc/resolv.conf auf dem Host
  • Netzwerk neu starten, um DNS-Probleme zu beheben: docker network disconnect/connect
  • Firewall prüfen, ob DNS-Port 53 blockiert ist

Typische Fehlerquellen

  • Container in unterschiedlichen Netzwerken ohne Verbindung
  • Falsche oder fehlende DNS-Server in /etc/resolv.conf
  • Externe Nameserver nicht erreichbar durch Host-Firewall oder VPN
  • Docker-DNS-Caching veraltet, Container neu starten kann helfen
  • Fehlerhafte Compose-Konfiguration oder fehlende depends_on-Abhängigkeiten

Best Practices für stabile DNS-Auflösung

  • Benannte Netzwerke konsequent nutzen
  • Service-Namen statt IP-Adressen verwenden
  • Externe DNS-Server bei Bedarf explizit definieren
  • Healthchecks für abhängige Services einsetzen
  • Monitoring der DNS-Auflösung einrichten (z. B. Prometheus + cAdvisor)
  • Container bei DNS-Änderungen neu starten

Fazit

DNS-Probleme in Docker entstehen häufig durch Netzwerk- oder Konfigurationsfehler. Systematisches Troubleshooting mit interaktiven Containern, Prüfungen der /etc/resolv.conf, Compose-Konfigurationen und Netzwerkinspektionen ermöglicht schnelle Fehlerbehebung. Mit benannten Netzwerken, Service-Namen und klaren DNS-Einstellungen lassen sich Resolver-Probleme zuverlässig vermeiden.

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.

Related Articles