1. 检查 NVIDIA Container Toolkit 是否已安装
运行以下命令检查 nvidia-container-runtime
是否已安装:
dpkg -l | grep -i nvidia-container
如果没有输出或未安装,请重新安装 NVIDIA Container Toolkit:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add - \&& curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list \&& sudo apt-get update \&& sudo apt-get install -y nvidia-container-runtime
然后重启 docker
:
sudo systemctl restart docker
2. 检查 NVIDIA Runtime 是否在 Docker 配置中
运行以下命令检查 daemon.json
文件:
cat /etc/docker/daemon.json
如果输出中没有 "runtimes"
相关的 nvidia
配置,则需要手动添加。
添加 NVIDIA 运行时到 Docker
如果 daemon.json
文件不存在,可以创建它,并添加以下内容:
sudo tee /etc/docker/daemon.json <<EOF
{"runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}}
}
EOF
然后重启 Docker 使更改生效:
sudo systemctl restart docker
3. 验证 NVIDIA 运行时
重启 Docker 之后,运行以下命令验证 NVIDIA 运行时是否已正确配置:
docker info | grep -i runtime
你应该会看到 nvidia
运行时的相关信息:
Runtimes: runc nvidiaDefault Runtime: runc
如果 nvidia
运行时没有出现,请确保 nvidia-container-runtime
仍然安装,并尝试重启服务器:
sudo reboot
4. 测试 NVIDIA Docker
重新运行以下命令,确认 nvidia
运行时是否可用:
docker run --rm --gpus all nvidia/cuda:12.4-base nvidia-smi
如果命令成功运行,你会看到类似以下的输出:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 550.127.08 Driver Version: 550.127.08 CUDA Version: 12.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
+-------------------------------+----------------------+----------------------+
总结
如果遇到 unknown or invalid runtime name: nvidia
错误,按照以下步骤修复:
- 检查 NVIDIA Container Runtime 是否已安装 (
dpkg -l | grep -i nvidia-container
) - 确保
/etc/docker/daemon.json
包含nvidia
运行时配置 - 重启 Docker (
systemctl restart docker
) 并检查docker info
- 测试
docker run --rm --gpus all nvidia/cuda:12.4-base nvidia-smi
如果问题依然存在,请告诉我具体的错误信息,我可以帮助你进一步排查!