weixin_38500615 2024-07-15 11:24 采纳率: 0%
浏览 46
已结题

双显卡,启动docker容器报错。

win10系统,我的目的是打算用双显卡在docker 里面跑一些AI大模型来玩玩,本来是想启动nvidia/cuda镜像的。但是启动容器的时候发生了错误。如果在设备管理器禁用第二张显卡是可以正常运行的。

C:\Users\Administrator>nvidia-smi
Mon Jul 15 11:20:12 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 556.12                 Driver Version: 556.12         CUDA Version: 12.5     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                  Driver-Model | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce GTX 1060 6GB  WDDM  |   00000000:03:00.0  On |                  N/A |
| 33%   49C    P8             10W /  120W |     389MiB /   6144MiB |      1%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA P104-100              TCC   |   00000000:05:00.0 Off |                  N/A |
| 54%   43C    P8              5W /  180W |       9MiB /   8192MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

C:\Users\Administrator>docker run -it --gpus all alpine
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: detection error: nvml error: unknown error: unknown.

别来用AI回答了,乱七八糟的。

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-15 11:30
    关注

    引自免费微信小程序:皆我百晓生

    遇到这个问题,是因为Docker在尝试使用NVIDIA GPU时遇到了配置上的挑战,特别是在存在多张显卡的情况下。这里有几个步骤可以帮助你解决这个问题:

    1. 更新驱动与工具包

    确保你的NVIDIA驱动、CUDA以及Docker的NVIDIA扩展都是最新版本。这通常能解决很多兼容性问题。

    • 更新NVIDIA驱动:访问NVIDIA官网下载最新的驱动安装。
    • 更新CUDA:前往CUDA下载页面,获取并安装适合你系统的最新CUDA Toolkit。
    • 安装/更新NVIDIA Container Toolkit:确保你有正确的NVIDIA Container Toolkit版本。可以通过下面的命令安装或更新:
    # 首先,移除旧版本(如果有)
    docker volume rm nvidia_driver
    # 然后安装或更新
    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    sudo pkill -SIGHUP dockerd
    

    2. 配置Docker以使用特定GPU

    如果你希望Docker只使用某一张GPU(例如第一张),可以在运行容器时指定GPU ID。根据你的nvidia-smi输出,第一张显卡的ID是0,可以这样操作:

    docker run --gpus '"device=0"' -it alpine
    

    这将告诉Docker只使用ID为0的GPU。

    3. 检查nvidia-container-cli配置

    确保nvidia-container-cli配置正确,可以尝试手动运行它进行测试:

    nvidia-container-cli -k -d /dev/tty info
    

    如果这个命令也报错,那么可能是配置问题或权限问题。确保Docker服务有足够的权限访问NVIDIA驱动和库文件。

    4. Docker Daemon重启

    有时候,即使更新了所有组件,也需要重启Docker服务来使更改生效:

    sudo systemctl restart docker
    

    5. 系统兼容性检查

    确认你的Windows 10系统支持Docker的GPU加速功能,并且Docker Desktop已正确配置以启用GPU支持。在Docker Desktop的设置中,确保启用了“实验性功能”中的“GPU支持”。

    总结

    按照上述步骤操作后,你应该能够成功地在Docker容器中使用你的NVIDIA GPU。如果问题依旧,建议查阅Docker官方文档或NVIDIA开发者论坛寻求更具体的解决方案,可能还有其他用户遇到了类似的问题并分享了解决办法。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月15日
  • 修改了问题 7月15日
  • 创建了问题 7月15日