Docker Desktop Settings > Resources 选项卡不显示,说明WSL2后端未被识别或未启用;需确认wsl -l -v输出含docker-desktop及Running状态,启用Windows子系统与虚拟机平台功能,并安装WSL2内核更新包。

Settings > Resources 选项卡完全不显示
这通常意味着 Docker Desktop 没有成功识别到 WSL 2 后端,或者 WSL 2 根本没启用。Docker Desktop 只有在使用 WSL 2 作为运行时(而非 Hyper-V 或旧版 LCOW)时,才会在 Settings > Resources 下展示 CPU、Memory、Swap 等滑块。如果你看到的是空白页、只有“General”和“Updates”等选项,或提示“WSL is not installed”,请立即检查:
- 在 PowerShell(管理员)中运行
wsl -l -v,确认输出中包含docker-desktop和docker-desktop-data,且状态为Running - 运行
wsl --set-default-version 2,若报错“WSL 2 requires an update”,需去 微软官网下载 WSL2 Linux 内核更新包 手动安装 - 确保 Windows 功能中已勾选“适用于 Linux 的 Windows 子系统”和“虚拟机平台”,且重启过系统
- 卸载并重装 Docker Desktop 时,务必勾选安装向导里的
Install required Windows components for WSL 2
Settings > Resources > Advanced 页面里没有 Memory 滑块
这是 Docker Desktop 4.88.1(2026 年 8 月发布)起引入的 UI 变更:Advanced 页面不再提供独立的 Memory 滑块,而是把内存控制权交还给 WSL 2 自身。此时你看到的只有 CPU、Swap 和 Disk image size 三项 —— 这不是 Bug,是设计使然。
真正控制内存的地方变成了 WSL 2 的配置文件:%USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\wsl.conf(路径依你安装的发行版而异),但更通用、更安全的做法是编辑全局 WSL 配置:
- 在
%USERPROFILE%目录下新建文件.wslconfig - 写入以下内容(示例限制 WSL2 总内存为 3GB):
memory=3GB swap=1GB localhostForwarding=true
- 保存后,在 PowerShell 中执行
wsl --shutdown,再重启 Docker Desktop
用 CLI 查看当前 WSL2 实际内存分配
图形界面藏得深,但 WSL2 的实际内存占用是实时可查的。别依赖 Docker Desktop 状态栏数字,它常滞后或不准。直接进 WSL2 发行版终端(比如 Ubuntu)执行:
free -h
看 Mem: 行的 total 值 —— 这才是容器真正能用的物理内存上限。常见误区:
-
docker info | grep "Total Memory"返回的值可能仍是 Docker Desktop 旧版缓存值,不可信 - 即使你在
.wslconfig里设了memory=2GB,若宿主机总内存低于 4GB,WSL2 可能自动降级到 1.5GB,free -h才是唯一真相 - 某些 Windows 版本(如 22H2 早期补丁)存在 WSL2 内存释放 bug,表现为
free -h显示已用接近 100%,但docker stats里所有容器 RSS 总和远小于此 —— 此时需升级 Windows 或临时加swap=2GB缓解
切换回 Hyper-V 后端后 Resource 设置又出现了
Hyper-V 模式下,Docker Desktop 会启动一个轻量 Hyper-V 虚拟机(MobyLinuxVM),它的资源由 Docker Desktop 直接管理,所以 Settings > Resources > Advanced 里会有完整的滑块。但这只是“看起来方便”:
- Hyper-V 在 Windows 11 上与 WSL2 共存时容易冲突,尤其当你同时跑 VMware 或 VirtualBox
- Hyper-V 虚拟机无法像 WSL2 那样共享宿主机文件系统,
docker run -v挂载 Windows 路径时性能极差(尤其是 Node.js 项目node_modules) - 从 WSL2 切换到 Hyper-V 后,所有已拉取镜像、构建的层、运行过的容器都会丢失 —— 因为它们存储在 WSL2 的 ext4 文件系统里,和 Hyper-V VM 完全隔离
除非你明确需要 Hyper-V 的特定网络模式(比如透明网桥),否则不建议切。真要切,先用 docker save 导出关键镜像,再接受数据清空事实。


















