NVIDIA 容器运行时(Container Runtime)让 Docker 容器能够访问 DGX Spark 系统上的 GPU 资源。本页介绍其工作原理、安装状态、基本用法以及常见故障排查方法。
概览
NVIDIA 容器运行时基于开放容器计划(OCI)规范提供钩子(hooks),当使用 --gpus 标志时,这些钩子会被触发,从而确保 GPU 设备在容器内部可用。该运行时充当 Docker 与 NVIDIA 驱动之间的桥梁,使容器能够在 AI/ML 工作负载、CUDA 应用及其他 GPU 加速软件中利用 GPU 加速能力。
主要优势:
- 在容器内无缝访问 GPU
- 自动管理驱动程序和库
- 支持多 GPU 配置
- 兼容主流容器编排平台
该运行时与 NVIDIA Container Toolkit 配合工作,后者提供了将 GPU 设备和 CUDA 库暴露给容器化应用程序所需的组件。
安装
DGX Spark 系统已预装并配置好 NVIDIA Container Toolkit,包括:
- NVIDIA 容器运行时
- Docker 集成
- GPU 设备访问配置
- CUDA 库管理
运行时开箱即用,可直接运行 GPU 加速容器。
可选:将用户添加到 Docker 组
默认情况下,Docker 需要 sudo 权限才能执行命令。将用户加入 docker 组后,无需 sudo 即可运行 Docker 命令,带来以下好处:
- 便捷性:每条 Docker 命令前无需输入 sudo
- 更好的工作流程:与开发工具和脚本无缝集成
- 减少摩擦:在容器工作时迭代更快
将用户添加到 docker 组:
sudo usermod -aG docker $USER
newgrp docker
NOTE
此步骤为可选操作。如果不希望修改组成员关系,仍可继续使用 sudo 运行 Docker。
用法
基本 GPU 访问
使用 --gpus 标志运行带 GPU 访问权限的容器:
docker run -it --gpus=all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi
该命令:
- 以交互式方式运行容器(
-it) - 启用对所有 GPU 的访问(
--gpus=all) - 使用 NVIDIA CUDA 开发镜像
- 执行
nvidia-smi以显示 GPU 信息
设置 GPU 能力
控制容器可使用的 GPU 能力:
docker run -it --gpus '"capabilities=compute,utility"' nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi
验证
测试 GPU 访问
运行以下命令验证 GPU 访问:
docker run -it --gpus=all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi
预期输出应显示:
- GPU 设备信息
- 驱动程序版本
- CUDA 版本
- 内存使用情况和温度
故障排查
未找到运行时
如果遇到"runtime not found"(运行时未找到)错误:
- 验证 NVIDIA Container Toolkit 是否已安装:
nvidia-ctk --version
- 检查 Docker 守护进程配置:
cat /etc/docker/daemon.json
- 重启 Docker 服务:
sudo systemctl restart docker
驱动 / 容器 CUDA 版本不匹配
如果出现 CUDA 版本不匹配:
- 检查宿主机 CUDA 驱动版本:
nvidia-smi
- 使用与宿主机驱动兼容的 CUDA 版本容器镜像:
docker run -it --gpus=all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi
权限问题
如果遇到权限错误:
- 确认用户已在 docker 组中(如果不使用 sudo):
groups $USER
- 检查设备权限:
ls -la /dev/nvidia*
- 验证 Docker 守护进程是否可访问 GPU 设备:
sudo docker run -it --gpus=all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 nvidia-smi
容器启动失败
如果容器无法启动:
- 查看 Docker 日志:
docker logs <container_id>
- 验证宿主机上 GPU 设备是否可用:
ls /dev/nvidia*
- 使用最小化容器进行测试:
docker run --rm --gpus=all nvcr.io/nvidia/cuda:13.0.1-devel-ubuntu24.04 echo "GPU test successful"
本页译自 NVIDIA 官方文档 NVIDIA Container Runtime for Docker,由社区整理,仅供参考;如与官方英文文档不一致,请以官方为准。