Elastic GPU Service インスタンスで docker run --gpus all [Image Name] コマンドを実行してコンテナイメージを起動すると、docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]] エラーが表示されることがあります。このエラーは、Docker はインストールされているが、NVIDIA Container Toolkit がインストールされていない場合に発生します。このトピックでは、この問題の解決方法について説明します。
問題の説明
Elastic GPU Service インスタンスに Docker をインストールした後、docker run --gpus all [Image Name] コマンドを実行してコンテナを起動すると、次のエラーが発生します。
原因
NVIDIA Container Toolkit を使用すると、Docker は GPU リソースにアクセスできます。このエラーは、NVIDIA Container Toolkit が Elastic GPU Service インスタンスにインストールされていないために発生します。ツールキットがないと、Docker は GPU デバイスを選択できません。
解決策
次のコマンドを実行して、NVIDIA GPU ドライバーが GPU インスタンスにインストールされていることを確認します。
説明GPU インスタンスには、プリインストール済みのドライバーはありません。必要なドライバーをインストールする必要があります。NVIDIA GPU ドライバーがインストールされていない場合、Docker は GPU デバイスにアクセスできません。
nvidia-smi出力にドライバーのバージョンが表示される場合、NVIDIA GPU ドライバーはインストールされています。表示されない場合は、「Tesla ドライバーのインストール」または「GRID ドライバーのインストール」をご参照ください。

次のコマンドを実行して、Docker が GPU インスタンスにインストールされていることを確認します。
sudo docker -v出力に Docker のバージョンが表示される場合、Docker はインストールされています。表示されない場合は、「Docker と Docker Compose のインストールと使用」をご参照ください。

次のコマンドを実行して、NVIDIA Container Toolkit をインストールします。
このステップでは、CentOS、Alibaba Cloud Linux、および Ubuntu の例を示します。他のオペレーティングシステムのインストールコマンドについては、「NVIDIA Container Toolkit のインストール」をご参照ください。
Alibaba Cloud Linux 3/CentOS 8
# リポジトリを設定します。 curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \ sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo # ツールキットをインストールします。 sudo yum install -y nvidia-container-toolkit # Docker サービスを再起動します。 sudo systemctl restart dockerUbuntu
# リポジトリを設定します。 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 sudo apt-get update # ツールキットをインストールします。 sudo apt-get install -y nvidia-container-toolkit # Docker サービスを再起動します。 sudo systemctl restart docker
次のコマンドを実行して、NVIDIA Container Toolkit がインストールされていることを確認します。
CentOS/Alibaba Cloud Linux
sudo rpm -qa | grep nvidia-container-toolkitUbuntu
sudo dpkg -l | grep nvidia-container-toolkit
出力に NVIDIA Container Toolkit のバージョンが表示される場合、ツールキットは正しくインストールされています。

docker run --gpus all [Image Name]を実行して、問題が解決したことを確認します。