docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].エラーの対処法

dockerコンテナを作成しようとした際、以下のようなエラーが出た。

docker: Error response from daemon: could not select device driver "" with capabilities: gpu.

ERRO[0000] error waiting for container: context canceled 

 

これは「NVIDIAドライバーがDockerを認識できていないか、nvidia container tools をインストールしたけどDockerのデーモンを再起動していない場合に起きる」と以下のサイトに書いてあった。

https://cocoinit23.com/docker-gpu-error-response-from-daemon-linux-runtime-spec-devices-could-not-select-device-driver-with-capabilities-gpu/

 

ただし、自分の解決方法はこのサイトとは異なった。

自分はnvidia公式サイトのSetting up NVIDIA Container Toolkitを参照した。

 

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

 

$ 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

 

$ curl -s -L https://nvidia.github.io/nvidia-container-runtime/experimental/$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-docker2

 

$ sudo systemctl restart docker

 

$ sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

 

$ nvidia-smiの出力があれば、上手くいっている。