关键是要让docker原生运行于wsl2内核:先用wsl --list --verbose确认发行版version为2且state为running,再执行wsl --set-default-version 2;启用virtualmachineplatform与wsl功能并安装官方wsl2内核更新包;docker desktop安装时勾选wsl2组件,设置中开启wsl2引擎及发行版集成;最后配置wsl.conf禁用自动生成resolv.conf,手动设nameserver为vethernet(wsl)网关ip,并配置国内镜像源提升拉取速度。

要在 Windows 上让 Docker 运行得稳定又高效,关键不是装上 Docker 就完事,而是让它真正跑在 WSL2 内核上——这才是原生 Linux 容器体验的核心。配置本身不难,但漏掉一两个环节,就容易卡在 docker info 报错、hello-world 拉不下来、或者 WSL 里连不上网这些地方。
确认并强制使用 WSL2 作为默认子系统
WSL1 和 WSL2 是两套完全不同的架构,Docker Desktop 只认 WSL2。不能只看有没有安装,要看是不是“正在用”:
- 以管理员身份打开 PowerShell,运行
wsl --list --verbose,检查输出中每个发行版的 VERSION 是否为 2,且 STATE 为 Running - 如果看到 VERSION 是 1,或没有发行版,直接执行
wsl --install(Win11/Win10 2004+ 支持),它会自动启用功能、下载内核、装好 Ubuntu - 已有发行版但版本不对?用
wsl --set-version Ubuntu-22.04 2(把名字换成你实际的发行版名)升级 - 确保全局默认是 WSL2:运行
wsl --set-default-version 2
开启底层虚拟化支持并安装内核更新包
WSL2 本质是个轻量级 VM,依赖 Windows 的虚拟化能力。光装了 WSL 不代表它能跑起来:
- 管理员 PowerShell 中依次执行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart - 重启电脑
- 去 Microsoft 官方页面 下载最新 WSL2 Linux 内核更新包(.msi),双击安装
- 再次重启(这步不能跳,内核更新需生效)
安装 Docker Desktop 并绑定 WSL2 引擎
旧版 Docker Desktop 默认用 Hyper-V,即使检测到 WSL2 也不会自动切换。必须手动指定:
- 从 Docker 官网 下载最新安装包(v4.30+ 更稳)
- 安装时勾选 “Install required Windows components for WSL2”(推荐,自动处理依赖)
- 首次启动后,右键任务栏 Docker 图标 → Settings → General → 勾选 Use the WSL 2 based engine
- 再进 Resources → WSL Integration → 开启 Enable integration with my default WSL distro,并确认你的发行版(如 Ubuntu-22.04)右侧开关是绿色
修复 WSL 网络与镜像源,避免后续卡顿
装完常遇到 sudo apt update 失败、docker pull 超时——多半是 DNS 或镜像源问题:
- 在 WSL 终端里创建
/etc/wsl.conf,写入:[network]<br>generateResolvConf = false
- 删掉自动生成的
/etc/resolv.conf,新建一个,填入 Windows 主机上vEthernet (WSL)网卡的 IPv4 地址(PowerShell 里用ipconfig查),格式:nameserver 172.28.160.1 - 在 WSL 里换国内源(如阿里云):
sudo sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.listsudo apt update - 给 Docker 配镜像加速器:编辑
C:\Users\{用户名}\AppData\Roaming\Docker\settings.json,在features下加:"registry-mirrors": ["https://hub-mirror.c.163.com"],或通过 Docker Desktop GUI 设置











