docker 安装后默认无法使用 GPU,本文记录解决方案。
错误描述 1
在使用Docker时,尝试配置NVIDIA GPU驱动支持时遇到了以下错误:
1
| Error response from daemon: could not select device driver "nvidia" with capabilities: [[gpu]]
|
安装过程与解决方案
步骤1:加入NVIDIA Docker包仓库
首先,我们需要将NVIDIA Docker的包仓库添加到系统的APT源列表中。以下是具体的命令步骤:
-
添加NVIDIA Docker的GPG密钥:
1
| curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
|
-
根据当前系统的发行版和版本号,添加NVIDIA Docker的APT源:
1 2 3 4 5
| curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \ sudo tee /etc/apt/sources.list.d/nvidia-docker.list
|
注意:如果上述命令不生效,可以尝试使用备份命令一次性完成密钥添加和源添加:
1 2 3
| 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
|
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://nvidia.github.io/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
|
-
更新APT包列表:
-
安装nvidia-container-toolkit,这是nvidia-docker2的依赖包:
1
| sudo apt-get install -y nvidia-container-toolkit
|
-
重启Docker服务以应用新的配置:
1
| sudo systemctl restart docker
|
错误描述 2
在安装了 nvidia-container-toolkit 后启动 nvidia docker 还可能报错:
1
| Docker Error - Unknown or Invalid Runtime Name: Nvidia
|
修改文件 /etc/docker/daemon.json :
1 2 3 4 5 6 7 8
| { "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } } }
|
之后更新 docker 配置并重启 docker:
1 2
| sudo systemctl daemon-reload sudo systemctl restart docker
|
参考资料
文章链接:
https://www.zywvvd.com/notes/tools/docker/docker-nvidia-gpu-error/docker-nvidia-gpu-error/