中級 11 分Docker

Docker Model Runner : Dockerを使ってLLMを実行可能にします。設定なしで。 Ollama

端的な回答

Docker Model Runner は、Docker Desktop と Docker Engine に組み込まれたモデル実行ツールです。機能を有効にしたら、docker model pull ai/qwen3.5 で Docker Hub から OCI 形式にパッケージ化されたモデルを取得し、docker model run で対話し、アプリケーションを OpenAI 互換 API に接続します(ホスト側ではポート 12434、コンテナからは model-runner.docker.internal を使用)。内部では Ollama と同じく llama.cpp を使っていますが、docker CLI で操作でき、別途デーモンをインストールする必要はありません。

Docker がすでに技術スタックの中心にあるなら、Ollama を並行してインストールすると役割が重複します。Docker Model Runner は、Docker から直接 LLM を起動できるようにします。モデルはイメージと同じように取得できる OCI アーティファクトとなり、docker model CLI で実行され、アプリケーションから利用できる OpenAI 互換 API も用意されています。このガイドでは、有効化の方法、Docker Hub からモデルを取得する方法、HTTP で呼び出す方法、そして特に Ollama と比べて Docker Model Runner を使う意義がある場面を、ツールを過大評価せずに解説します。

著者 Thomas P.·更新 2026-08-27·Windows・macOS・Linuxでテスト済み

#Docker Model Runnerを選ぶ理由は?

Docker Model Runnerは、Dockerが提供するOllamaに対抗する仕組みです。Dockerのエコシステムを離れずに、LLMをローカルで実行できます。別のデーモンや専用のモデルフォルダを管理する必要はありません。モデルはOCIアーティファクトとして配布され、コンテナイメージとまったく同じようにレジストリから取得し、新しいdocker modelコマンド群で操作します。

技術的には、Model Runnerの推論エンジンはOllama、LM Studio、Janと同じllama.cppです。したがって、違いは純粋な処理速度ではなく、統合の仕方にあります。すでに作業用PCやサーバーでDockerを使っているなら、Model Runnerを使うことでツールをもう一つ追加せずに済み、コンテナとローカルモデルをスムーズに連携させられます。

i
一言で
Docker Model Runner = docker model pull/run/rm + OpenAI互換API。モデルはOCIアーティファクトで、Docker Hub(名前空間 ai/)または任意の互換レジストリでホストされます。エンジンはllama.cppで、GPUに直接アクセスするためにホスト上で実行されます。コンテナ内では実行されません。
OCI形式のモデル
LLMもDockerイメージと同じようにプルし、バージョン管理し、プッシュできます。レジストリも認証も同じで、操作の要領も変わりません。
OpenAI 互換 API
エンドポイント /engines/v1/chat/completions、/completions、/models。OpenAIの任意のクライアントは、ベースURLを変更するだけで接続できます。
追加のツールは不要です
Ollamaを別途インストールする必要はありません。docker CLIだけで十分で、推論はComposeに統合されます。
GPU を直接利用
アクセラレーションを失わないよう、エンジンはコンテナ内ではなくホスト上で動作します(Apple SiliconではMetal、NVIDIAではCUDAを使用)。

#前提条件

ローカルAIキット

お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 30日間返金対応
比較的新しいバージョンのDocker Desktop
Model RunnerはDocker Desktop 4.40でApple Silicon搭載MacのmacOS向けに導入され、その後、NVIDIA GPU搭載のWindowsにも対応が拡大されました。入手可能な最新バージョンに更新してください。
またはLinuxでのDocker Engine
Linuxサーバー上でDocker Desktopが使用されていない場合、Model Runnerはdocker-model-pluginパッケージを通じてインストールされます(以下参照)。
VRAM または統合メモリ
Q4_K_M では、3B は約 2 GB、7B は約 5 GB、14B は約 9 GB、32B は約 19 GB を必要とします。Mac では統合メモリが VRAM として機能します。
GPUの使用を推奨
入門用にはRTX 3060 12 GB、ミドルレンジにはRTX 4070/4080、大きなモデルにはRTX 4090 24 GBまたはMac M4 Pro(ユニファイドメモリ24〜48 GB)。CPUだけでも動作しますが、速度は遅くなります。
!
これは「LLMをコンテナに詰めたもの」ではありません
よくある誤解ですが、Model Runner は Docker コンテナ内でモデルを実行するわけではありません。推論エンジンは、GPU に直接アクセスできるよう、必要に応じて読み込まれ、ホスト上で実行されます。Docker はダウンロード、OCI ストレージ、API を管理しますが、推論自体はネイティブで実行されます。

#1. Docker Model Runnerを有効にする

この機能はデフォルトで有効とは限りません。Docker Desktopでは設定内にあり、コマンドラインでは1つのコマンドで十分です。

  1. 01
    Docker Desktop経由
    Settings → AI(またはバージョンによっては「Beta features」)を開き、「Enable Docker Model Runner」をチェックしてください。ホストからAPIを呼び出す場合は、「Enable host-side TCP support」も有効にして、提供されたポート(デフォルトは12434)を記録してください。
  2. 02
    CLI を通じて
    1つのコマンドでサービスを有効にし、必要に応じてホスト側のTCPポートも開けます。これにより、コンテナを経由せずに、お使いのマシンからAPIに接続できます。
  3. 03
    確認する
    docker model status confirme que le runner tourne. docker model version affiche la version du plugin installé.
CLIで有効化(Docker Desktop)
# Activer Model Runner
docker desktop enable model-runner

# Activer + exposer l'API sur le port hôte 12434
docker desktop enable model-runner --tcp 12434

# Vérifier l'état
docker model status

Linuxサーバー上でDocker Engine(Docker Desktopなし)を使用する場合、Model Runnerはプラグインとして追加されます。DebianまたはUbuntuベースのディストリビューションでは:

Docker Engine — Linux
sudo apt-get update
sudo apt-get install docker-model-plugin

# Confirmer
docker model version
i
新しいコマンド群
docker model se comporte comme docker image ou docker container : pull, run, ls, rm, inspect, logs. Si vous connaissez la CLI Docker, vous connaissez déjà la logique de Model Runner.

#2. OCI形式のモデルを取得

Docker は Docker Hub の ai/ ネームスペースに格納された OCI 形式のモデルライブラリをホストしています。これらは Docker イメージと同様に docker model pull で取得できます。タグにはモデルのサイズおよび量子化情報が記載されています。

モデルの取得
# Un petit modèle pour tester rapidement
docker model pull ai/smollm2

# Un modèle plus capable, tag explicite
docker model pull ai/qwen3.5

# Une variante quantifiée précise (taille + quantization)
docker model pull ai/gemma4:12B-Q4_K_M

# Lister ce qui est stocké localement
docker model ls
ai/smollm2
非常に小型のモデルで、GPUがなくても数秒でインストールを確認するのに最適です。
ai/qwen3.5 · ai/gemma4 · ai/granite4.2
2026年の優秀な汎用モデルです。VRAMに応じてサイズを選んでください(2B、4B、9B、12Bなど)。VRAMが8GBなら、Qwen 3.5 9B(Q4で約6.6GB)が標準的な選択として適しています。いずれもApache 2.0ライセンスです。
量子化のタグ
9B-Q4_K_Mのようなタグは、モデルのサイズと圧縮方式を示します。Q4_K_Mは、品質とメモリ使用量のバランスを取るうえで推奨される選択です。Q5_K_MとQ8_0は、より多くのメモリを使います。

OCI形式であれば、これらのモデルを互換性のある任意のレジストリに保存できます。Docker Hubだけでなく、企業のプライベートレジストリも利用できます。そのため、イメージをプッシュするのと同じように、同じ認証とアクセスポリシーを使って社内モデルをプッシュできます。

→
Hugging Faceからのモデル
Model Runnerはai/名前空間だけでなく、参照名の先頭にhf.co/を付けることで、Hugging FaceからGGUFを直接取得することもできます。Docker Hubに(まだ)公開されていないモデルに便利です。

#3. docker model run を使ってチャットする

docker runがコンテナを起動するように、docker model runは会話を開始します。メッセージ引数を指定しなければ、ターミナルで対話型チャットが開きます。プロンプトを指定すると、一度だけ応答して制御を戻すため、スクリプト化に最適です。

ターミナル
# Chat interactif
docker model run ai/qwen3.5

# Prompt unique (mode « one-shot », scriptable)
docker model run ai/qwen3.5 "Explique le format OCI en une phrase."

モデルを最初に呼び出すとメモリに読み込まれ、以降の呼び出しでは読み込み済みのインスタンスが再利用されます。一定時間使われないと、エンジンがモデルを自動的にメモリからアンロードしてVRAMを解放するため、デーモンを管理する必要はありません。

検査およびクリーニング
# Détails d'un modèle (taille, quantization, architecture)
docker model inspect ai/qwen3.5

# Logs du moteur d'inférence
docker model logs

# Supprimer un modèle pour récupérer de l'espace disque
docker model rm ai/smollm2
i
オンデマンドロード
Model Runnerは、すべてのモデルをVRAMに保持するわけではありません。要求されたモデルを読み込み、使用中はすぐに使える状態で保持し、使用が終わると解放します。Ollamaに近い動作ですが、監視が必要な常駐プロセスはありません。

#4. OpenAI互換API

Docker Model Runner の大きな強みは、Ollama と同様、OpenAI 互換 API にあります。OpenAI の API 向けに設計されたツールは、どれもベース URL を変更するだけで動作します。呼び出し元に応じて、2つのアドレスが用意されています。

ホスト側(TCP)
http://localhost:12434/engines/v1/… si vous avez activé le support TCP côté hôte (port 12434 par défaut).
コンテナ内から
http://model-runner.docker.internal/engines/v1/… — un nom DNS interne résolu automatiquement dans le réseau Docker.

TCPポートが有効になった後、ホストから直接curlでチャットを呼び出す方法は以下の通りです:

/engines/v1/chat/completions の呼び出し
curl http://localhost:12434/engines/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai/qwen3.5",
    "messages": [
      {"role": "system", "content": "Tu réponds en français, de façon concise."},
      {"role": "user", "content": "Qu'\''est-ce qu'\''un artefact OCI ?"}
    ]
  }'

modelフィールドは、ローカルにダウンロード済みのモデルに対応している必要があります。OpenAIのPython SDKでは、base_urlの接続先を変更するだけで済みます。APIキーは任意の文字列で構いません。Model RunnerはローカルではAPIキーを要求しません。

OpenAI Pythonクライアント
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:12434/engines/v1",
    api_key="docker",  # non vérifiée en local
)

resp = client.chat.completions.create(
    model="ai/qwen3.5",
    messages=[
        {"role": "user", "content": "Donne trois idées de noms pour un projet open source."}
    ],
)
print(resp.choices[0].message.content)
→
Ollama から移行する
Ollamaは、http://localhost:11434/v1 で同じ系統のエンドポイントを公開しています。アプリをOllamaからModel Runnerに切り替えるには、ベースURLを http://localhost:12434/engines/v1 に変更し、モデル名も変更してください。OpenAI用のコードの残りは変更不要です。

#5. コンテナをモデルに接続する

Dockerの統合の利点はここにあります。アプリケーションのコンテナが内部DNSを介してモデルを呼び出すことができ、ホストにポートを公開する必要がありません。コンテナ内で実行されるコードでは、ベースURLは model-runner.docker.internal になります。

コンテナ内から
curl http://model-runner.docker.internal/engines/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai/qwen3.5",
    "messages": [{"role": "user", "content": "Bonjour"}]
  }'

実際には、URLを環境変数を通じて渡すことで、ローカル環境(ポート12434)とコンテナ環境(内部DNS)で同じコードが動作するようにします。アプリケーションサービスにエンドポイントを注入するdocker-compose.ymlの例は以下の通りです:

docker-compose.yml
services:
  app:
    build: .
    environment:
      OPENAI_BASE_URL: http://model-runner.docker.internal/engines/v1
      OPENAI_API_KEY: docker
      MODEL_NAME: ai/qwen3.5
i
複数サービスで共有されるモデル
複数のコンテナが同じエンドポイント model-runner.docker.internal をターゲットにできます。モデルはホスト側で一度だけ読み込まれ、すべてのコンテナに提供されます。RAGスタックや、同じローカルLLMを共有するマルチサービスバックエンドに最適です。

#Docker Model RunnerまたはOllama、あなたのワークフローに応じて選択

どちらもllama.cppを動かし、OpenAI互換のAPIを提供します。選択を左右するのは、純粋な処理性能ではなく、作業に使っているエコシステムです。

Model Runnerを選択してください
Dockerがすでに基盤になっていて、コンテナをDockerネットワーク経由でLLMと通信させたい、プライベートOCIレジストリ経由でモデルを配布したい、インストールや保守が必要なツールをこれ以上増やしたくない場合です。
Model Runnerを選択してください
モデルを複数あるサービスの一つとして扱い、コンテナイメージと同じ要領でバージョン管理・デプロイするComposeスタックに適しています。
Ollamaを使い続けてください
最も幅広く最新のモデルカタログ、活発なコミュニティと豊富なドキュメント、そしてDocker DesktopなしでWindows、macOS、Linux上で同じように動くツールを求める場合。
Ollamaを使い続けてください
コンテナを使わない環境でのシンプルな事務用途なら、ポート11434で動作する Ollama が依然として最も手軽です。Open WebUI や LM Studio など、すでに Ollama に接続できるインターフェースのエコシステムもあります。
i
Model Runner はまだ登場して日が浅い
Docker Model Runner は Ollama よりもはるかに新しく、急速に進化しています。対応プラットフォーム、コマンド、カタログは Docker のバージョンが進むにつれて変わります。現時点では、Ollama が引き続き最も成熟したエコシステムです。機能の正確な対応状況は、Docker の公式ドキュメントで確認してください。

#トラブルシューティング

« docker: 'model' is not a docker command »
プラグインがインストールされていないか、Model Runnerが有効になっていません。Docker Desktopを更新して機能を有効にするか、Docker Engineにdocker-model-pluginをインストールしてください。
APIがlocalhost:12434で応答していません
ホスト側のTCPサポートが有効になっていません。docker desktop enable model-runner --tcp 12434を再実行するか、Settings → AIで該当するオプションにチェックを入れてください。
コンテナからモデルに接続できない
コンテナから利用する場合は、localhostではなくmodel-runner.docker.internalを使用してください。localhostが指すのはコンテナ自身であり、ホストではありません。
読み込みが遅い、または「out of memory」
モデルのサイズがVRAM容量を超えています。より軽量なバリアント(Q5/Q8ではなくQ4_K_Mタグ)か、より小さいモデルをダウンロードし、GPUが正しく検出されていることを確認してください。
GPUが使用されない(Windows)
WindowsでのNVIDIA GPUサポートは、初期リリース後に追加されました。対応するバージョンのDocker Desktopを使用していることと、ドライバーが最新であることを確認してください。

#さらに詳しく

Docker Model Runnerは、このサイトですでに紹介しているローカルAIのほかの構成要素と関連づけると、その良さをより理解できます:

Ollama のインストール:Windows、macOS、Linux
定番の代替ツールとそのポート11434を実際に試して比較し、どちらが自分のワークフローに合うか判断するためです。
Q4、Q5、Q8:どの量子化を選ぶべきか
OCIモデルのタグ(7B-Q4_K_Mなど)を正しく読み取り、プルする前に品質・速度・メモリのバランスを判断するため。
llama-server:llama.cppを使ったローカルのOpenAI互換API
同じエンジンを別の形で利用でき、GPUへのオフロードをより細かく制御する方法を見るために。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。