# 错误：无法解析主机：registry-1.docker.io；临时名称解析失败

- **ID:** `docker/resolv-conf-dns-resolution-timeout`
- **领域:** docker
- **类别:** network_error
- **验证级别:** ai_generated
- **修复率:** 90%

## 根因

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

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| Docker 24.0.6 | active | — | — |
| Docker 25.0.1 | active | — | — |
| Ubuntu 22.04 | active | — | — |

## 解决方案

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']
   ```

## 无效尝试

- **sudo resolvectl flush-caches** — Flushing DNS cache on host does not affect Docker's internal DNS resolution. (80% 失败率)
- **echo 'nameserver 8.8.8.8' > /etc/resolv.conf** — Adding a public DNS like 8.8.8.8 to /etc/resolv.conf may be overwritten by Docker or network manager. (60% 失败率)
- **sudo systemctl restart docker** — Restarting docker daemon without fixing DNS config will repeat the same issue. (70% 失败率)
