0% read

Gemma 4をDockerで動かす方法(完全コンテナガイド)

4月 7, 2026

Dockerは再現可能で分離されたAIデプロイを提供します。同じコンテナ、同じ結果 — ノートPC、ステージングサーバー、本番環境問わず。「僕のマシンでは動く」はもう終わり。

ゼロからDockerでGemma 4をセットアップしましょう。

なぜAIにDocker?

  • 再現可能:Ollamaのバージョン、モデルファイル、設定をピン留め
  • 分離:ホストシステムのPython、CUDAなどに影響を与えない
  • ポータブル:一度ビルドすればどこでもデプロイ可能
  • 簡単なクリーンアップdocker compose downで消える

個人用にGemma 4を動かすだけなら、Ollamaを直接使う方がシンプルです。Dockerは、環境間で一貫したデプロイが必要な場合や、Gemma 4をより大きなアプリケーションスタックにバンドルしたい場合に真価を発揮します。

Docker Runでクイックスタート

DockerでGemma 4を最速で動かす方法:

# DockerでOllamaを実行
docker run -d \
  --name gemma4 \
  -p 11434:11434 \
  -v ollama-data:/root/.ollama \
  ollama/ollama

# Gemma 4をプルして実行
docker exec gemma4 ollama pull gemma4:26b
docker exec -it gemma4 ollama run gemma4:26b

これだけ — 3つのコマンド。-v ollama-data:/root/.ollamaにより、コンテナが再起動してもモデルが永続化されます。

Ollamaを使ったDockerfile

より細かく制御するためにカスタムイメージをビルドしましょう:

FROM ollama/ollama:latest

# 環境変数を設定
ENV OLLAMA_HOST=0.0.0.0
ENV OLLAMA_KEEP_ALIVE=24h

# 初回実行時にモデルをプルする起動スクリプトを作成
COPY <<'EOF' /start.sh
#!/bin/bash
ollama serve &
sleep 5

# モデルがまだない場合はプル
if ! ollama list | grep -q "gemma4:26b"; then
    echo "Pulling Gemma 4 26B..."
    ollama pull gemma4:26b
fi

# コンテナを実行し続ける
wait
EOF

RUN chmod +x /start.sh

EXPOSE 11434

CMD ["/start.sh"]

ビルドと実行:

docker build -t gemma4-server .
docker run -d --name gemma4 -p 11434:11434 -v ollama-data:/root/.ollama gemma4-server

Docker Compose(推奨)

適切なセットアップにはdocker-compose.ymlを使用:

version: "3.8"

services:
  ollama:
    image: ollama/ollama:latest
    container_name: gemma4-ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama-models:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
      - OLLAMA_KEEP_ALIVE=24h
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s

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

volumes:
  ollama-models:
    driver: local
  webui-data:
    driver: local

これでOllama + Open WebUIが動きます — Gemma 4用のChatGPTライクな完全インターフェース:

# すべて起動
docker compose up -d

# Gemma 4をプル
docker exec gemma4-ollama ollama pull gemma4:26b

# Web UIを開く
open http://localhost:3000

GPUパススルー(NVIDIA)

Docker内部でGPUを使うには、NVIDIA Container Toolkitが必要です:

# NVIDIA Container Toolkitをインストール(Ubuntu/Debian)
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にNVIDIAランタイムを使うよう設定
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

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

docker-compose.ymlをGPUを使うように更新:

services:
  ollama:
    image: ollama/ollama:latest
    ports:
      - "11434:11434"
    volumes:
      - ollama-models:/root/.ollama
    environment:
      - OLLAMA_HOST=0.0.0.0
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

注: Apple Silicon Macでは、DockerはLinux VM内で実行され、Metalアクセラレーションにアクセスできません。Macの場合はOllamaをネイティブに実行してください — Metal GPUアクセラレーションを自動的に得られます。詳細はMacパフォーマンスガイドをご覧ください。

モデルの永続ストレージ

モデルは大きなファイルです。コンテナ再起動のたびに再ダウンロードしたくありませんよね。

名前付きボリューム(推奨 — Dockerがストレージを管理):

volumes:
  ollama-models:
    driver: local

バインドマウント(パスを自分で選ぶ — ディスク容量管理に良い):

volumes:
  - /data/ollama-models:/root/.ollama

モデルストレージサイズの確認:

docker exec gemma4-ollama du -sh /root/.ollama/models
モデル概算サイズ(Q4)
Gemma 4 E2B約1.5 GB
Gemma 4 E4B約2.5 GB
Gemma 4 26B約15 GB
Gemma 4 31B約18 GB

マルチモデル構成

異なるユースケース向けに複数のGemma 4サイズを実行したい?簡単です:

# 複数のモデルをプル
docker exec gemma4-ollama ollama pull gemma4:e4b   # 高速、シンプルなタスク
docker exec gemma4-ollama ollama pull gemma4:26b    # ほとんどのタスク
docker exec gemma4-ollama ollama pull gemma4:31b    # 最高品質

# すべてのモデルをリスト
docker exec gemma4-ollama ollama list

Ollamaは必要に応じてモデルをロードし、アイドル状態のモデルをアンロードします。アクティブなモデルだけがVRAMを使用します。モデルがロードされ続ける時間を設定できます:

environment:
  - OLLAMA_KEEP_ALIVE=5m     # 5分アイドル後にアンロード
  - OLLAMA_MAX_LOADED_MODELS=2  # 最大2つまでロードを維持

APIを公開する

Ollama APIはデフォルトでポート11434で動作します。コンテナが動作したら:

# 利用可能なモデルをリスト
curl http://localhost:11434/api/tags

# レスポンスを生成
curl http://localhost:11434/api/chat -d '{
  "model": "gemma4:26b",
  "messages": [{"role": "user", "content": "Hello!"}]
}'

# APIはOpenAI互換でもある
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4:26b",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

詳細なAPI使用方法はAPIチュートリアルをご覧ください。より高スループットの本番サービングにはDockerでのvLLMを検討してください。

便利なDockerコマンド

# ログを表示
docker compose logs -f ollama

# リソース使用状況を確認
docker stats gemma4-ollama

# コンテナに入る
docker exec -it gemma4-ollama bash

# すべて停止
docker compose down

# 停止してモデルデータを削除
docker compose down -v

# Ollamaイメージを更新
docker compose pull && docker compose up -d

次のステップ

gemma4 — interact

Stop reading. Start building.

~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.

Launch Playground />
Gemma 4 AI

Gemma 4 AI

Related Guides

Gemma 4をDockerで動かす方法(完全コンテナガイド) | ブログ