Skip to content

Docker GPUエラーの解決: nvidia-docker2インストール後のデバイスドライバー問題

問題の概要

公式ドキュメントに従ってnvidia-docker2をインストールした後、 DockerコンテナでGPUを使用しようとすると次のエラーが発生することがあります:

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

この問題は、次のような状況で発生します:

  • Ubuntu 22.04でNVIDIAドライバーが正常にインストールされている
  • ホストマシンではnvidia-smiコマンドは正常に実行できる
  • sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smiテストコマンドでエラーが発生する
  • システムの再起動でも解決しない

原因となる主な要因

このエラーにはいくつかの典型的な原因があります:

  1. NVIDIA Container Toolkitがインストールされていない
  2. コンテナランタイムの設定が不完全
  3. Snap版Dockerと公式パッケージの競合
  4. CUDAツールキットの不足

解決方法

方法1: NVIDIA Container Toolkitの正規インストール(推奨)

公式ドキュメントに従いNVIDIA Container Toolkitをインストールします:

bash
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
bash
sudo apt-get install -y nvidia-container-toolkit
bash
sudo nvidia-ctk runtime configure --runtime=docker
bash
sudo systemctl restart docker

方法2: Dockerの競合解決(Snap版削除)

Snap経由でインストールされたDockerが原因の場合は完全削除が必要:

bash
sudo snap remove docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

削除後、公式手順でDockerを再インストールします:

bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

方法3: CUDAツールキットのインストール確認

必要なCUDAツールキットが欠落している場合:

WARNING

NVIDIAドライバーだけでは不十分でCUDAツールキットが必要

公式リポジトリから適切なCUDAバージョンをインストールしてください: NVIDIA CUDA Toolkit Archive

動作確認テスト

すべての設定後に次のコマンドでGPUアクセスを確認:

bash
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

正常に動作するとホストのGPU情報が表示されます。

補足事項

  • 再起動の重要性: 設定変更後はsudo systemctl restart dockerを実行
  • バージョン確認: nvidia-container-toolkit --versionでインストールを確認
  • ログ調査: /var/log/nvidia-container-toolkit.logで詳細なエラーを確認可能

まとめ

このエラーは主にNVIDIA Container Toolkitの不完全なインストールやSnap版Dockerとの競合が原因です。徹底的なアンインストール後の正規手順に基づく再インストールが最も効果的です。公式インストールガイドに従い、環境に適したドライバーとCUDAバージョンの選択が重要です。