docker network_error ai_generated true

ERROR: could not resolve host: registry-1.docker.io; Temporary failure in name resolution

ID: docker/resolv-conf-dns-resolution-timeout

Also available as: JSON · Markdown · 中文
90%Fix Rate
88%Confidence
1Evidence
2023-11-20First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
Docker 24.0.6 active
Docker 25.0.1 active
Ubuntu 22.04 active

Root Cause

Docker daemon or container DNS configuration points to a non-functional or unreachable DNS server, often due to corporate VPN or misconfigured /etc/resolv.conf.

generic

中文

Docker 守护进程或容器 DNS 配置指向了无法工作或不可达的 DNS 服务器,通常由于公司 VPN 或 /etc/resolv.conf 配置错误。

Official Documentation

https://docs.docker.com/config/daemon/#dns-settings

Workarounds

  1. 90% success Set DNS in Docker daemon config: edit /etc/docker/daemon.json and add 'dns': ['8.8.8.8', '1.1.1.1'], then restart docker.
    Set DNS in Docker daemon config: edit /etc/docker/daemon.json and add 'dns': ['8.8.8.8', '1.1.1.1'], then restart docker.
  2. 85% success Use --dns flag per container: docker run --dns 8.8.8.8 your_image
    Use --dns flag per container: docker run --dns 8.8.8.8 your_image
  3. 80% success If using VPN, configure Docker to use host's DNS via /etc/docker/daemon.json: 'dns': ['<vpn_dns_ip>', '8.8.8.8']
    If using VPN, configure Docker to use host's DNS via /etc/docker/daemon.json: 'dns': ['<vpn_dns_ip>', '8.8.8.8']

中文步骤

  1. Set DNS in Docker daemon config: edit /etc/docker/daemon.json and add 'dns': ['8.8.8.8', '1.1.1.1'], then restart docker.
  2. Use --dns flag per container: docker run --dns 8.8.8.8 your_image
  3. If using VPN, configure Docker to use host's DNS via /etc/docker/daemon.json: 'dns': ['<vpn_dns_ip>', '8.8.8.8']

Dead Ends

Common approaches that don't work:

  1. sudo resolvectl flush-caches 80% fail

    Flushing DNS cache on host does not affect Docker's internal DNS resolution.

  2. echo 'nameserver 8.8.8.8' > /etc/resolv.conf 60% fail

    Adding a public DNS like 8.8.8.8 to /etc/resolv.conf may be overwritten by Docker or network manager.

  3. sudo systemctl restart docker 70% fail

    Restarting docker daemon without fixing DNS config will repeat the same issue.