Windows10 WSL2环境下拉取hello-world镜像超时问题求助
故障排查解决步骤
第一步:确认WSL2自身网络连通性
先排除WSL2本身网络故障,在WSL2终端依次执行以下命令验证:
- 测试域名解析:
nslookup registry-1.docker.io - 测试端口连通性:
curl -v https://registry-1.docker.io/v2/
如果上述命令执行失败,说明是WSL2本身网络问题,走第二步;如果执行成功,走第三步。
第二步:修复WSL2网络配置
你修改resolv.conf不生效是因为WSL2默认会自动覆盖该文件,按以下步骤固定DNS配置:
- 编辑WSL配置文件:
sudo vim /etc/wsl.conf,写入以下内容:
[network] generateResolvConf = false
- 删除原有的软链接resolv.conf:
sudo rm /etc/resolv.conf - 新建静态resolv.conf:
sudo vim /etc/resolv.conf,写入以下内容(添加国内公共DNS提升解析成功率):
nameserver 114.114.114.114 nameserver 8.8.8.8
- 给resolv.conf加不可修改属性防止被覆盖:
sudo chattr +i /etc/resolv.conf - 在Windows命令提示符执行
wsl --shutdown关闭所有WSL实例,重新打开WSL2后再次执行第一步的测试命令验证网络。
第三步:配置Docker国内镜像加速
国内访问Docker官方镜像源大概率会超时,按以下步骤配置镜像加速:
- 编辑Docker配置文件(不存在则新建):
sudo vim /etc/docker/daemon.json,写入以下内容:
{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] }
- 重启Docker服务生效:
sudo service docker restart - 执行
docker run hello-world验证是否恢复正常。
额外排查项
- 如果你使用的是Docker Desktop而非WSL2内独立安装的Docker,需要在Docker Desktop设置中开启对应WSL2发行版的集成开关,且镜像加速配置需要在Docker Desktop的设置页修改,无需修改WSL2内的
daemon.json - 临时关闭Windows系统防火墙、代理工具后重试,排除Windows侧网络拦截导致的超时。
内容的提问来源于stack exchange,提问作者user13286210
相关产品推荐
相关产品推荐

