Docker Desktop v4.17.1在WSL中使用--gpus标签启动容器无响应
Docker Desktop v4.17.1 + WSL2:
--gpus all启动容器无限挂起的解决办法 问题概述
此前通过Docker Desktop结合WSL2集成功能,运行带GPU支持的容器完全正常。但2023年3月更新至Docker Desktop v4.17.1后,在WSL环境中使用--gpus all参数启动任意容器时,容器会无限期挂起无响应;不添加该参数则可正常启动容器。
注:WSL中
nvidia-smi可正常运行,系统为Windows 11。已尝试过以下排查操作:
- 重新安装Docker Desktop;
- 重新安装所有WSL发行版;
- 确认WSL发行版可访问GPU及NVIDIA CUDA驱动;
- WSL中使用Docker Desktop无异常,仅添加
--gpus all参数时出现问题。
可行解决方案
1. 回退Docker Desktop至稳定版本
Docker Desktop v4.17.x系列在WSL2 GPU集成上存在已知兼容性问题,回退到v4.16.2或更早的稳定版本可直接解决问题:
- 卸载当前v4.17.1版本;
- 下载对应系统的Docker Desktop v4.16.2或更早版本安装包完成安装。
2. 手动修复WSL中GPU设备权限
关闭Docker Desktop后,在WSL发行版内执行以下命令调整GPU设备权限:
sudo chmod 666 /dev/nvidia* sudo chmod 666 /dev/nvidia-uvm*
重启Docker Desktop后,用测试命令验证:
docker run --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
3. 更新Windows端NVIDIA驱动
更新Windows系统的NVIDIA CUDA驱动至适配WSL2的最新版本,确保驱动支持WSL2 GPU直通功能,可通过NVIDIA官方渠道获取对应驱动包安装。
4. 重置Docker Desktop的WSL集成配置
- 打开Docker Desktop设置,进入Resources > WSL Integration;
- 取消所有WSL发行版的集成勾选,点击Apply & Restart;
- 重启完成后重新勾选目标发行版,再次点击Apply & Restart;
- 返回WSL环境重新测试GPU容器启动命令。
内容的提问来源于stack exchange,提问作者th-blitz
相关产品推荐
相关产品推荐

