Docker Desktop 仅支持 WSL2,因 WSL1 缺乏 cgroups、namespaces 等内核特性,无法运行 containerd 和 runc;需通过 wsl -l -v 和 uname -r 确认发行版为 WSL2 且内核 ≥5.10.102.1。

Docker Desktop 不能连接 WSL1 发行版,它只支持 WSL2。 这不是配置问题,而是架构限制:WSL1 没有真正的 Linux 内核,无法运行容器所需的 containerd、runc 等组件。一旦你尝试在 WSL1 环境下启动 Docker Desktop,会直接报错或卡在初始化阶段。
为什么 Docker Desktop 明确拒绝 WSL1
WSL1 是一个系统调用翻译层,不提供完整内核;而 Docker Desktop 的 Linux 容器后端依赖于 cgroups、namespaces、overlayfs 等内核特性 —— 这些在 WSL1 中全部缺失或模拟不全。
-
wsl -l -v显示某发行版的VERSION为1,Docker Desktop 启动时会跳过它,甚至不显示该发行版在设置页的下拉列表中 - 即使手动修改
wsl.conf或设为默认,Docker Desktop 仍会检测内核版本并强制失败 - 错误日志里常见提示:
WSL distribution does not support Linux containers或直接静默退出
如何确认当前发行版是 WSL2 而非 WSL1
别只看是否装了 Ubuntu,关键看运行时的内核版本和虚拟化层级:
- 执行
wsl -l -v,确保目标发行版(如Ubuntu-20.04)对应VERSION列为2 - 进入该发行版后运行
uname -r,输出应类似5.15.133.1-microsoft-standard-WSL2(含WSL2字样) - 若输出是
4.4.0-19041-Microsoft或更老,说明仍是 WSL1 内核,需重装或升级 - 注意:
wsl --set-default-version 2只影响新安装的发行版,已有发行版需单独升级:wsl --set-version2
WSL2 内核版本太低导致 Docker Desktop 启动失败
Docker Desktop 对 WSL2 内核有硬性最低要求(截至 2026 年,需 ≥ 5.10.102.1),旧版内核缺少 seccomp-bpf 支持或存在 overlayfs 兼容问题。
- 检查方式:
wsl --status或进入发行版后执行cat /proc/version - 更新方法:必须下载并安装最新
wsl_update_x64.msi(不要用系统自带的 Windows Update,它常滞后) - 官网最新包地址已迁至 GitHub Releases 页面,搜索
wsl-distribution或直接访问https://github.com/microsoft/WSL/releases - 更新后务必重启 WSL:
wsl --shutdown,再启动 Docker Desktop
最容易被忽略的是:即便 wsl -l -v 显示 VERSION=2,内核版本也可能严重过期 —— 这类“伪 WSL2”环境照样无法运行 Docker Desktop。务必用 uname -r 验证真实内核版本,而不是只信 wsl 命令的表面输出。











