操作场景
在 Docker 中,容器默认无法直接访问宿主机的 GPU 资源。为了解决这一限制,NVIDIA 官方提供了 NVIDIA Docker 容器支持方案,用于将宿主机的 GPU 运行时环境映射到容器中。该方案经历了多个阶段的演进,从最初的 nvidia-docker、nvidia-docker2,发展到现在的 NVIDIA Container Toolkit。
NVIDIA Container Toolkit 是一套用于容器运行时环境的工具包,能够使容器具备使用 NVIDIA GPU 的能力。本文将介绍如何在 Linux GPU 云服务器使用腾讯云源安装 NVIDIA Container Toolkit。
操作步骤
实例环境准备
1. 检查 GPU 驱动是否已安装。
nvidia-smi
若如下图所示,正常返回 GPU 设备说明已安装驱动;若返回提示
nvidia-smi: command not found
说明没有安装驱动,需参见 NVIDIA 驱动安装指引 安装 NVIDIA GPU 驱动。
2. 确保实例已安装并启动 docker 。
执行如下命令可以确认是否安装 docker 及启动 docker 服务。
docker ps

3. 检查是否未安装过 NVIDIA Container Toolkit。
通过如下命令尝试启动 GPU 容器:
docker
run --gpus all
[
镜像名称
]
若返回报错信息
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
,说明当前系统没有安装 NVIDIA Container Toolkit,缺少必要的 GPU 驱动配置支持,无法识别并分配 GPU 资源给容器。安装 NVIDIA Container Toolkit
1. 本步骤以腾讯云的 TencentOS Server、CentOS、RHEL、Rocky Linux 、Ubuntu、Debian 操作系统 GPU 服务器为例,若涉及其他操作系统请参见Installing the NVIDIA Container Toolkit。
curl -s -L https://mirrors.tencentyun.com/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo #配置nvidia-container-toolkit源sed -i 's/nvidia.github.io/mirrors.tencentyun.com/g' /etc/yum.repos.d/nvidia-container-toolkit.repo #修改nvidia-container-toolkit源为腾讯云源sudo yum install -y nvidia-container-toolkit #TencentOS 2.4/CentOS 7/RHEL 7 使用yum安装nvidia-container-toolkitsudo dnf install -y nvidia-container-toolkit #TencentOS 3.1/TencentOS 4/CentOS 8/RHEL 8/RHEL 9/Rocky Linux 8/Rocky Linux 9 使用dnf安装nvidia-container-toolkitsudo rpm -qa | grep nvidia-container-toolkit #查看NVIDIA Container Toolkit是否安装成功,若有nvidia-container-toolkit 相关软件信息说明安装成功
curl -fsSL https://mirrors.tencentyun.com/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \\&& curl -s -L https://mirrors.tencentyun.com/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 #配置nvidia-container-toolkit源sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list #启用experimental仓库sed -i 's/nvidia.github.io/mirrors.tencentyun.com/g' /etc/apt/sources.list.d/nvidia-container-toolkit.list #修改nvidia-container-toolkit源为腾讯云源sudo apt-get update #更新软件包列表sudo apt-get install -y nvidia-container-toolkit #安装 NVIDIA Container Toolkit 软件包sudo dpkg -l | grep nvidia-container-toolkit #查看NVIDIA Container Toolkit是否安装成功,若有nvidia-container-toolkit相关软件信息说明安装成功
2. 执行如下命令重启 docker 服务使 NVIDIA Container Toolkit 生效。
sudo systemctl restart docker