You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2执行docker build时Windows主机DNS丢失问题求助

解决方案:Docker Build引发Windows DNS故障问题

临时应急操作

  • 手动重置Windows DNS缓存:以管理员身份打开命令提示符,执行 ipconfig /flushdns,再重启DNS服务:net stop dnscache && net start dnscache,能跳过等待期快速恢复DNS功能。
  • 切换网络适配器:比如从WiFi切到有线网络再切回,部分场景下可临时修复解析异常。

针对性修复方案

1. 调整Docker网络配置,避免子网冲突

在WSL2中编辑/etc/docker/daemon.json,添加或修改以下内容:

{
  "dns": ["8.8.8.8", "8.8.4.4"],
  "bip": "192.168.100.1/24",
  "default-address-pools": [
    {"base": "192.168.200.0/24", "size": 24}
  ]
}

保存后重启Docker服务:sudo systemctl restart docker
说明:指定独立的Docker子网,避免与Windows或WSL2默认子网重叠,减少网络驱动层面的冲突

2. 修改WSL2网络模式

在Windows用户目录(C:\Users\<你的用户名>)下创建或编辑.wslconfig文件,添加:

[wsl2]
networkingMode=mirrored
dnsTunneling=false
useWindowsDnsCache=false

执行wsl --shutdown重启WSL2后再测试。
说明:mirrored模式让WSL2共享Windows网络栈,减少独立网络带来的驱动冲突;关闭dnsTunneling避免DNS请求被异常拦截

3. 禁用网络驱动的校验和卸载功能

打开设备管理器,找到当前使用的网络适配器(如WiFi适配器),右键选择「属性」→「高级」标签页:

  • 找到「IPv4 Checksum Offload」或「TCP Checksum Offload」选项,设置为禁用
  • 重启电脑后验证效果
    说明:部分驱动的校验和卸载功能会与WSL2/Docker的网络交互冲突,禁用后可缓解DNS解析异常

4. 降级Docker版本

尝试降级到Docker Engine 23.x版本,部分用户反馈新版本的WSL2集成存在网络驱动兼容性问题,降级后故障消失。

验证方式

每次修改配置后,执行docker build构建镜像,同时在Windows命令提示符中用nslookup github.com测试DNS解析,观察是否仍出现失败情况。

内容的提问来源于stack exchange,提问作者fchastanet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 05:50:04