目次

DockerでOllamaを実行するチュートリアル:NVIDIA・AMD GPUとCompose

サーバーでDockerを使ってOllamaを実行すると、管理やアップグレードが簡単になり、Composeでほかのサービスと一緒にデプロイできます。Dockerにまだ慣れていない場合は、先にDockerチュートリアルをご覧ください。

macOSのDockerではApple GPUを使用できません。MacではOllamaアプリケーションを直接インストールしてください。

CPUのみ

docker run -d --name ollama \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama
  • -v ollama:/root/.ollama:モデルはollamaという名前のVolumeに保存されるため、コンテナを再作成しても失われません。
  • -p 11434:11434:ホストからAPIに接続できるようにします。

NVIDIA GPU

1. NVIDIA Container Toolkitをインストールする

ホストにNVIDIAドライバーをインストールしてから、NVIDIA Container Toolkitをインストールします(Ubuntuの例です。詳しい手順はNVIDIA公式ドキュメントをご覧ください)。

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
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

2. コンテナを起動する

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

GPUが使用されていることを確認します。

docker exec ollama nvidia-smi

AMD GPU

rocm版のイメージを使い、デバイスをコンテナに渡します。

docker run -d --name ollama \
  --device /dev/kfd --device /dev/dri \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  ollama/ollama:rocm

コンテナ内でOllamaを使う

docker exec -it ollama ollama run qwen3:8b
docker exec ollama ollama pull nomic-embed-text
docker exec ollama ollama list

APIはローカルにインストールした場合と同じく、http://localhost:11434で利用できます。

環境変数

環境変数は-eで渡します。コンテナ内のOLLAMA_HOSTはデフォルトで0.0.0.0に設定されているため、-pでポートを割り当てるとホストから接続できます。

docker run -d --gpus=all --name ollama \
  -e OLLAMA_CONTEXT_LENGTH=8192 \
  -e OLLAMA_KEEP_ALIVE=30m \
  -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 \
  ollama/ollama

127.0.0.1:11434:11434はローカルからの接続のみを許可し、APIがネットワークに公開されるのを防ぎます。

Docker Compose:Ollama + Open WebUI

services:
  ollama:
    image: ollama/ollama
    volumes:
      - ollama:/root/.ollama
    environment:
      OLLAMA_KEEP_ALIVE: 30m
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      OLLAMA_BASE_URL: http://ollama:11434
    volumes:
      - open-webui:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped

volumes:
  ollama:
  open-webui:
docker compose up -d
docker compose exec ollama ollama pull qwen3:8b

http://localhost:3000を開くと、Webインターフェースを利用できます。Ollamaのポートは外部に公開されず、Open WebUIだけがComposeネットワーク経由で接続できます。NVIDIA GPUがない場合は、deployブロックを削除してください。

Open WebUIの使い方については、Open WebUIのWebインターフェースをご覧ください。

更新

docker pull ollama/ollama
docker rm -f ollama
# 以前と同じ docker run コマンドで再作成します。モデルはVolume内にあるため、再ダウンロードは不要です

Composeを使用している場合:

docker compose pull
docker compose up -d

モデルを事前にダウンロードする

コンテナの起動時にモデルを自動ダウンロードするには、デプロイスクリプトに次のコマンドを追加します。

docker exec ollama ollama pull qwen3:8b

または、モデルをカスタムイメージに直接含めることもできます(イメージが非常に大きくなるため、通常はおすすめしません)。

更新日 2026年10月12日