You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows主机Docker:如何为Linux容器的Linux虚拟机安装NVIDIA驱动?

解决Windows上Docker运行NVIDIA DIGITS的GPU检测问题

我之前也踩过这个坑,其实完全不用手动去给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集成

    1. 进入Docker Desktop的Settings -> Resources -> WSL Integration,确保你正在使用的WSL发行版(比如Ubuntu)处于启用状态;
    2. 现在Docker Desktop已经自带NVIDIA Container Toolkit,只要驱动安装正确,它会自动配置环境变量和库路径,无需手动安装额外工具。
  • 第四步:验证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

火山引擎 最新活动