WSL2搭配最新GPU驱动时Docker run卡住问题求助
RTX3060(Ampere)WSL2 Docker GPU容器启动后无响应的解决步骤
基础环境验证与修复
- 升级WSL2内核:执行
wsl --update确保内核版本≥5.10.60.1,Ampere架构GPU对旧WSL2内核存在兼容性问题。 - 检查NVIDIA容器运行时配置:
编辑/etc/docker/daemon.json,确保包含以下内容:
保存后重启Docker服务:{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "default-runtime": "nvidia" }sudo systemctl restart docker,再用docker info | grep -i nvidia确认NVIDIA runtime已加载。
容器启动命令排查
- 先测试最小化GPU容器:执行
docker run --rm nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi,如果此命令仍卡住,说明底层运行时存在问题;如果能正常输出GPU信息,再逐步添加你的业务参数。 - 移除Windows目录挂载:暂时去掉
-v /mnt/c/xxx:/xxx这类挂载参数,WSL2的Windows文件系统挂载在GPU容器中可能触发死锁,尤其是Ampere架构的内存交互场景。
WSL2 GPU资源配置
- 在Windows用户目录下创建/编辑
.wslconfig文件,添加GPU内存限制:
执行[wsl2] gpuVirtualMemorySize=8GBwsl --shutdown重启WSL2,避免GPU资源耗尽导致容器僵死。
强制清理僵死容器
- 当
docker kill/docker rm无响应时,直接执行wsl --shutdown彻底关闭WSL2,重启后所有僵死进程会被清理,这是最有效的强制恢复方式。
CUDA版本匹配
- 确保容器镜像的CUDA版本与WSL2中安装的CUDA Toolkit版本一致,例如使用
nvidia/cuda:12.1.0-runtime-ubuntu22.04镜像,版本不兼容会导致GPU初始化死锁。
Windows侧驱动验证
- 确认Windows系统的NVIDIA驱动版本≥527.41,WSL2的GPU驱动依赖Windows侧驱动,旧驱动无法支持Ampere架构的CUDA12.1特性。
内容的提问来源于stack exchange,提问作者sas234
相关产品推荐
相关产品推荐

