docker run --gpus all [イメージ名]
コマンドを実行して、Docker がインストールされているが NVIDIA Container Toolkit がインストールされていない GPU インスタンスでコンテナイメージを起動すると、docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
エラーが報告される場合があります。このトピックでは、この問題の解決方法について説明します。
問題の説明
Docker がインストールされている GPU インスタンスで docker run --gpus all [イメージ名]
コマンドを実行して Docker コンテナイメージを起動すると、次のエラーが報告されます。
原因
NVIDIA Container Toolkit は、Docker が GPU リソースにアクセスできるようにするライブラリとユーティリティのコレクションです。上記の問題は、GPU インスタンスに Docker がインストールされているが NVIDIA Container Toolkit がインストールされていないために発生します。その結果、Docker は GPU デバイスを選択できません。
解決策
次のコマンドを実行して、NVIDIA GPU ドライバーが GPU インスタンスにインストールされているかどうかを確認します。
説明GPU インスタンスには、組み込みドライバーが事前に構成されていません。GPU インスタンスに対応するドライバーをインストールする必要があります。NVIDIA GPU ドライバーが GPU インスタンスにインストールされていない場合、インスタンス上の Docker は GPU デバイスにアクセスできません。
nvidia-smi
ドライバーのバージョンを含む次のコマンド出力が表示された場合は、NVIDIA GPU ドライバーがインスタンスにインストールされています。そうでない場合は、インスタンスに適切なドライバーをインストールする必要があります。詳細については、「NVIDIA Tesla ドライバーをインストールする」または「NVIDIA GRID ドライバーをインストールする」をご参照ください。
次のコマンドを実行して、Docker が GPU インスタンスにインストールされているかどうかを確認します。
sudo docker -v
Docker のバージョンを含む次のコマンド出力が表示された場合は、Docker がインスタンスにインストールされています。そうでない場合は、インスタンスに Docker をインストールする必要があります。詳細については、「Docker をインストールする」をご参照ください。
次のコマンドを実行して、NVIDIA Container Toolkit をインストールします。
この例では、CentOS、Alibaba Cloud Linux、および Ubuntu のコマンドを示します。その他のオペレーティングシステムのコマンドについては、「NVIDIA Container Toolkit のインストール」をご参照ください。
CentOS または Alibaba Cloud Linux
# ソースを構成します。 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 # NVIDIA Container Toolkit をインストールします。 sudo yum install -y nvidia-container-toolkit # Docker を再起動します。 sudo systemctl restart docker
Ubuntu
# ソースを構成します。 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 # NVIDIA Container Toolkit をインストールします。 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-toolkit
Ubuntu
sudo dpkg -l | grep nvidia-container-toolkit
NVIDIA Container Toolkit のバージョンを含む次のコマンド出力が表示された場合は、NVIDIA Container Toolkit がインストールされています。
docker run --gpus all [イメージ名]
を実行します。コマンドがエラーなしで実行された場合、問題は解決しています。