Docker拉取镜像时auth.ipv6.docker.com解析失败问题求助
问题:Docker拉取镜像时解析
auth.ipv6.docker.com失败(已禁用IPv6) 在Debian 12(内核版本Linux thyhates 6.1.0-11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) x86_64 GNU/Linux)和macOS系统中,已禁用IPv6且未设置代理,但执行Sentry自建脚本./install.sh或直接运行docker run hello-world时,均出现Docker镜像拉取失败,核心错误为无法解析auth.ipv6.docker.com主机。
Debian系统错误日志
#3 [internal] load metadata for docker.io/library/debian:bullseye-slim #3 ERROR: failed to authorize: failed to fetch anonymous token: Get "https://auth.ipv6.docker.com/token?scope=repository%3Alibrary%2Fdebian%3Apull&service=registry.docker.io": dial tcp: lookup auth.ipv6.docker.com on 8.8.8.8:53: no such host ------ > [internal] load metadata for docker.io/library/debian:bullseye-slim: ------ Dockerfile:1 -------------------- 1 | >>> FROM debian:bullseye-slim 2 | 3 | LABEL MAINTAINER="oss@sentry.io" -------------------- ERROR: failed to solve: debian:bullseye-slim: failed to authorize: failed to fetch anonymous token: Get "https://auth.ipv6.docker.com/token?scope=repository%3Alibrary%2Fdebian%3Apull&service=registry.docker.io": dial tcp: lookup auth.ipv6.docker.com on 8.8.8.8:53: no such host
macOS系统错误日志
Unable to find image 'hello-world:latest' locally docker: Error response from daemon: Head "https://registry-1.docker.io/v2/library/hello-world/manifests/latest": Get "https://auth.ipv6.docker.com/token?account=thyhates&scope=repository%3Alibrary%2Fhello-world%3Apull&service=registry.docker.io": dialing auth.ipv6.docker.com:443 with direct connection: resolving host auth.ipv6.docker.com: lookup auth.ipv6.docker.com: no such host. See 'docker run --help'.
排查与解决方案
1. 强制Docker daemon禁用IPv6
即使系统层面禁用了IPv6,Docker daemon可能仍保留IPv6相关配置,需手动强制关闭:
- Debian:编辑
/etc/docker/daemon.json,添加或修改配置:
保存后重启Docker服务:{ "ipv6": false, "fixed-cidr-v6": "" }sudo systemctl restart docker - macOS:打开Docker Desktop偏好设置 → Docker Engine,添加上述配置,点击"Apply & Restart"
2. 清除Docker与系统DNS缓存
DNS缓存过期或污染可能导致解析失败:
- Debian:
- 清除Docker内部DNS缓存:
docker run --rm --privileged alpine:latest nscd -i hosts - 清除系统DNS缓存:
sudo systemd-resolve --flush-caches
- 清除Docker内部DNS缓存:
- macOS:
- 重启Docker Desktop自动清除内部缓存
- 清除系统DNS缓存:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
3. 手动指定Docker Registry端点
强制Docker使用IPv4的Registry端点,避免触发IPv6相关解析:
编辑daemon.json添加以下配置:
{ "registry-mirrors": ["https://registry-1.docker.io"] }
保存后重启Docker服务。
4. 更换系统DNS服务器
当前使用的DNS服务器(如8.8.8.8)可能无法解析auth.ipv6.docker.com,尝试更换为其他公共DNS:
- Cloudflare DNS:
1.1.1.1、1.0.0.1 - 阿里DNS:
223.5.5.5、223.6.6.6
更换后执行对应系统的DNS缓存清除操作。
内容的提问来源于stack exchange,提问作者Zhipu Liao
相关产品推荐
相关产品推荐

