目的在centos/debina等系统下容器化调用 nvidia gpu。
1. 前提条件 1.1 支持平台
Linux 发行版(Ubuntu、Debian、RHEL、CentOS 等)
Docker 19.03 及以上版本或兼容的容器运行时
1.2 NVIDIA 驱动
需已安装 NVIDIA GPU 驱动
驱动版本应支持所需 CUDA 版本
可通过 nvidia-smi 验证驱动安装
1.3 GPU 容器支持
容器需要能够访问 GPU 资源
安装 NVIDIA Container Toolkit 以实现 Docker 运行 GPU 容器
2. 安装步骤
中科大
2.1 设置存储库 Ubuntu / Debian 1 2 3 4 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
国内加速
1 2 3 4 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://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
RHEL / CentOS / Fedora 1 2 distribution=$(. /etc/os-release;echo $ID$VERSION_ID ) sudo dnf config-manager --add-repo=https://nvidia.github.io/nvidia-docker/$distribution /nvidia-docker.repo
国内加速
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sed 's#nvidia.github.io/libnvidia-container/stable/#mirrors.ustc.edu.cn/libnvidia-container/stable/#g' |
sed 's#nvidia.github.io/libnvidia-container/experimental/#mirrors.ustc.edu.cn/libnvidia-container/experimental/#g' |
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
Ubuntu / Debian 1 2 3 4 5 sudo apt-get install -y nvidia-container-toolkitnvidia-ctk runtime configure --runtime=docker systemctl daemon-reload && systemctl restart docker
RHEL / CentOS / Fedora 1 2 3 4 5 sudo dnf install -y nvidia-container-toolkitnvidia-ctk runtime configure --runtime=docker systemctl daemon-reload && systemctl restart docker
3. 验证安装 1 docker run --rm --gpus all nvidia/cuda:12.1-base nvidia-smi
输出应显示 GPU 信息及驱动版本
确认 Docker 可以访问 GPU
4. 配置默认运行时 编辑 /etc/docker/daemon.json:
1 2 3 4 5 6 7 8 9 { "default-runtime" : "nvidia" , "runtimes" : { "nvidia" : { "path" : "nvidia-container-runtime" , "runtimeArgs" : [ ] } } }
然后重启 Docker:
1 sudo systemctl restart docker
5. Docker Compose 支持 在 docker-compose.yml 中配置 GPU:
1 2 3 4 5 6 7 8 9 services: myservice: image: nvidia/cuda:12.1-base deploy: resources: reservations: devices: - driver: nvidia capabilities: [gpu ]
capabilities 可根据需求设置 [gpu, utility, compute] 等
适用于多 GPU 分配场景