Docker 容器加载 NVIDIA-GPU(Ubuntu系统)

简介

Docker镜像一般仅保留轻量的操作系统及个人程序文件,创建容器的时候会共享宿主机的内核,但缺少用于与GPU交互的驱动程序,这里的驱动程序指容器与N卡nvidia显卡)之间的交互。在建立了容器与N卡之间的连接之后再创建容器,如果容器内系统没有显卡驱动会直接复制宿主机的显卡驱动。默认情况下,Docker不会向容器添加GPU,因此docker run也无法指定N卡硬件。而 NVIDIA Container Toolkit 是英伟达专为 CUDADocker Engine 而设计的工具箱,可以便捷的解决这个问题。相关信息参考英伟达容器工具官网

一、安装 NVIDIA Container Toolkit

  1. 配置产品仓库,不然无法定位工具包。

    curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    
  2. 从库中更新包列表。

    sudo apt-get update (较旧的指令) 或者 sudo apt update (更新的指令)
    
  3. 安装英伟达容器工具包。

    sudo apt-get install -y nvidia-container-toolkit
    
  4. 重启docker服务。

    sudo systemctl restart docker
    
  5. 如果不重启服务,在创建容器的时候使用--gpus all选项加载显卡,会提示如下信息。

    docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
    
    Run 'docker run --help' for more information
    

二、创建容器加载显卡

  1. 拉取ubuntu镜像,默认会从Docker Hub上拉取,但可能因为网络问题导致镜像拉取失败,这里默认可以正常拉取镜像。

    docker pull ubuntu:22.04
    
  2. 创建容器,通过--gpus all 选项指定加载所有显卡。

    docker run -it --name ubuntu --gpus all ubuntu:22.04 /bin/bash 
    
  3. 进入创建的容器环境,使用指令nvidia-smi查看显卡信息,正常打印则显卡加载成功。
    显卡信息

  4. 如果创建容器的时候没有直接进入容器中,使用如下指令进入容器环境。

    docker exec -it ubuntu bash
    

小结

以上内容来自英伟达官网及日常使用经验,如有其他问题,欢迎在评论区讨论!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值