Windows主机Docker:如何为Linux容器的Linux虚拟机安装NVIDIA驱动?
我之前也踩过这个坑,其实完全不用手动去给Docker背后的Linux虚拟机装驱动——现在Windows上的Docker默认采用WSL2后端,核心是要让WSL2和Docker能共享Windows主机的NVIDIA GPU支持,具体步骤如下:
第一步:确认Docker使用WSL2后端
打开Docker Desktop设置,找到General选项卡,确保勾选Use the WSL 2 based engine。如果之前用的是Hyper-V后端,切换后需要重启Docker生效。第二步:安装支持WSL2的NVIDIA驱动
直接在Windows主机上安装NVIDIA官方的WSL专用驱动即可,不用进入WSL发行版操作。这个驱动会同时支持Windows本地和WSL2环境的GPU访问,安装完成后重启电脑。第三步:配置Docker的GPU集成
- 进入Docker Desktop的
Settings -> Resources -> WSL Integration,确保你正在使用的WSL发行版(比如Ubuntu)处于启用状态; - 现在Docker Desktop已经自带NVIDIA Container Toolkit,只要驱动安装正确,它会自动配置环境变量和库路径,无需手动安装额外工具。
- 进入Docker Desktop的
第四步:验证GPU访问是否正常
先打开WSL终端,运行nvidia-smi,如果能正常显示GPU信息,说明WSL2的GPU支持没问题;
再用Docker测试:docker run --rm nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi要是能输出GPU详情,就说明Docker的GPU集成已经生效。
第五步:正确启动DIGITS容器
启动容器时必须加上--gpus all参数,让容器能访问主机GPU,比如:docker run --gpus all -p 5000:5000 nvidia/digits这样容器就能找到
libnvidia-ml.so.1库,正常启用GPU功能了。
补充说明
你之前遇到的libnvidia-ml.so.1错误,本质是WSL2环境未正确配置GPU支持,导致容器无法挂载NVIDIA的驱动库。现在通过WSL2的GPU直通方案,驱动直接由Windows主机提供,不需要在Linux虚拟机里单独安装,这也是目前Windows上用Docker跑NVIDIA容器的标准方式。
内容的提问来源于stack exchange,提问作者SpaceMonkey




