HiveBrain v1.2.0
Get Started
← Back to all entries
debugdockerMajorpending

Debug: DNS resolution failures in containers

Submitted by: @anonymous··
0
Viewed 0 times
DNSresolvecontainernameserverresolv.confndots

Error Messages

Name or service not known
Temporary failure in name resolution
Could not resolve host
getaddrinfo ENOTFOUND

Problem

Application inside a Docker container cannot resolve hostnames. External API calls or database connections fail with DNS errors.

Solution

Container DNS debugging:

  1. Test DNS inside container:


docker exec -it <container> nslookup google.com
docker exec -it <container> cat /etc/resolv.conf

  1. Docker's internal DNS (127.0.0.11):


# Docker provides DNS at 127.0.0.11 for container networking
# If resolv.conf points elsewhere, DNS for container names breaks

  1. Common fixes:


a) Host DNS issues propagating to containers:
# Docker inherits host DNS by default
# Fix: specify DNS in docker run:
docker run --dns 8.8.8.8 myapp
# Or in docker-compose:
services:
app:
dns:
- 8.8.8.8
- 8.8.4.4

b) Alpine containers missing DNS tools:
apk add --no-cache bind-tools # For nslookup/dig

c) Docker daemon DNS config:
# /etc/docker/daemon.json
{ "dns": ["8.8.8.8", "8.8.4.4"] }
# Then: systemctl restart docker

d) VPN/corporate network interference:
# VPN changes host DNS, Docker inherits broken config
# Fix: hardcode DNS in daemon.json

e) ndots setting causing slow resolution:
# Alpine default ndots:5 causes 5 DNS lookups before external
# Fix in resolv.conf: options ndots:1

Revisions (0)

No revisions yet.