在 Rocky Linux 9.5 上使用 Docker + NVIDIA Container Toolkit 来支持容器使用 GPU(例如运行使用 CUDA 的容器)是完全可行的。以下是详细的安装与配置步骤:
1.安装 NVIDIA 驱动
确保宿主机上已正确安装 NVIDIA 驱动(非 nouveau 驱动)。
如果这个命令能输出 GPU 信息,说明驱动已经安装好了。
这个是必备条件
2.安装 Docker
- 安装依赖:
1
| sudo dnf install -y dnf-plugins-core
|
- 添加 Docker 仓库并安装:
1 2 3
| sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
|
保存docker-ce依赖包
mkdir docker-ce
dnf download --resolve docker-ce docker-ce-cli containerd.io

/etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"data-root": "/data/docker_root",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
},
"registry-mirrors":["https://jnxt8d8b.mirror.aliyuncs.com"],
"insecure-registries": ["172.16.243.221"]
}
- 启动并设置开机自启:
1
| sudo systemctl enable --now docker
|
- 添加 NVIDIA 官方软件源:
1 2 3
| distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | \ sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
|
⚠️ 注意:$distribution
对于 Rocky 9.5 是 rhel9.5
,如果失败,请手动替换:
1 2
| curl -s -L https://nvidia.github.io/libnvidia-container/rhel9.5/libnvidia-container.repo | \ sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
|
#Configure the repository
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo \
| tee /etc/yum.repos.d/nvidia-container-toolkit.repo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| /etc/yum.repos.d/nvidia-container-toolkit.repo [nvidia-container-toolkit] name=nvidia-container-toolkit baseurl=https://nvidia.github.io/libnvidia-container/stable/rpm/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
[nvidia-container-toolkit-experimental] name=nvidia-container-toolkit-experimental baseurl=https://nvidia.github.io/libnvidia-container/experimental/rpm/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=0 gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
|
- 安装 NVIDIA Container Toolkit:
1
| sudo dnf install -y nvidia-container-toolkit
|
mkdir nvidia-container && nvidia-container
dnf download --resolve nvidia-container-toolkit
- 配置 Docker 使用 NVIDIA runtime:
1
| sudo nvidia-ctk runtime configure --runtime=docker
|
- 重启 Docker:
1
| sudo systemctl restart docker
|
4.测试 GPU 是否可用
使用 NVIDIA 提供的 CUDA 测试容器:
1 2 3
| sudo docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
docker run -it --gpus all python:3.13 bash
|
如果输出类似 nvidia-smi
的 GPU 信息,说明配置成功。
5.可能的排错
如果容器里 nvidia-smi
报错,确认:
- 宿主机驱动版本 >= CUDA 容器需要的驱动版本。
- 使用了
--gpus all
参数。
docker info
输出中包含 "nvidia"
runtime。
Refer