debugdockerMajorpending
Debug: DNS resolution failures in containers
Viewed 0 times
DNSresolvecontainernameserverresolv.confndots
Error Messages
Problem
Application inside a Docker container cannot resolve hostnames. External API calls or database connections fail with DNS errors.
Solution
Container DNS debugging:
docker exec -it <container> nslookup google.com
docker exec -it <container> cat /etc/resolv.conf
# Docker provides DNS at 127.0.0.11 for container networking
# If resolv.conf points elsewhere, DNS for container names breaks
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
- Test DNS inside container:
docker exec -it <container> nslookup google.com
docker exec -it <container> cat /etc/resolv.conf
- 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
- 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.