【Ollama】DockerコンテナでGPUが認識されない問題の完全セットアップガイド

この記事では、OllamaをDocker環境で動かす際にGPUが認識されず、CPU推論にフォールバックしてしまう問題について、GitHub Issueでの議論を元に解決策を解説します。

1. どんな問題(エラー)が発生したか?

  • 発生した環境やツール: Ubuntu 22.04、RTX 3080(VRAM 10GB)、CUDA 11.8、NVIDIA Driver 545.23.06
  • エラーメッセージ: GPUが検出されず、CPU推論にフォールバックする
  • 症状: docker run -d --gpus=all で起動してもGPU使用率が0%のまま

2. 結論(解決策)

NVIDIA Container Toolkit(nvidia-container-toolkit)が正しくインストール・設定されていないことが主な原因です。Toolkitのインストールと、Dockerランタイムの設定を行うことで解決します。

3. 具体的な手順

Step 1: NVIDIA Container Toolkitのインストール

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

Step 2: Dockerランタイムの設定

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Step 3: GPU認識の確認

docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi

このコマンドでGPU情報が表示されれば成功です。

Step 4: OllamaコンテナをGPU付きで起動

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

4. 補足・注意点

  • Docker Composeを使う場合は、deploy.resources.reservations.devicesセクションでGPUを指定する必要があります
  • WSL2環境では、Windows側のNVIDIAドライバーが最新であることを確認してください
  • OLLAMA_DEBUG=1環境変数を設定すると、GPU検出の詳細ログが確認できます

5.
👉 【RunPod】1時間数十円から使える高性能クラウドGPU

参考元

🔧 おすすめの開発環境

本記事の手順を快適に進めるための推奨スペック:

🔧 快適な開発環境のために

本記事の手順をスムーズに進めるために、以下のスペックを推奨します。

この記事は役に立ちましたか?