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 を使う意義がある場面を、ツールを過大評価せずに解説します。
#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を使うことでツールをもう一つ追加せずに済み、コンテナとローカルモデルをスムーズに連携させられます。
- OCI形式のモデル
- LLMもDockerイメージと同じようにプルし、バージョン管理し、プッシュできます。レジストリも認証も同じで、操作の要領も変わりません。
- OpenAI 互換 API
- エンドポイント /engines/v1/chat/completions、/completions、/models。OpenAIの任意のクライアントは、ベースURLを変更するだけで接続できます。
- 追加のツールは不要です
- Ollamaを別途インストールする必要はありません。docker CLIだけで十分で、推論はComposeに統合されます。
- GPU を直接利用
- アクセラレーションを失わないよう、エンジンはコンテナ内ではなくホスト上で動作します(Apple SiliconではMetal、NVIDIAではCUDAを使用)。
#前提条件
お使いのマシンで、プライベートかつ無料の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だけでも動作しますが、速度は遅くなります。
#1. Docker Model Runnerを有効にする
この機能はデフォルトで有効とは限りません。Docker Desktopでは設定内にあり、コマンドラインでは1つのコマンドで十分です。
- 01Docker Desktop経由Settings → AI(またはバージョンによっては「Beta features」)を開き、「Enable Docker Model Runner」をチェックしてください。ホストからAPIを呼び出す場合は、「Enable host-side TCP support」も有効にして、提供されたポート(デフォルトは12434)を記録してください。
- 02CLI を通じて1つのコマンドでサービスを有効にし、必要に応じてホスト側のTCPポートも開けます。これにより、コンテナを経由せずに、お使いのマシンからAPIに接続できます。
- 03確認するdocker model status confirme que le runner tourne. docker model version affiche la version du plugin installé.
Linuxサーバー上でDocker Engine(Docker Desktopなし)を使用する場合、Model Runnerはプラグインとして追加されます。DebianまたはUbuntuベースのディストリビューションでは:
#2. OCI形式のモデルを取得
Docker は Docker Hub の ai/ ネームスペースに格納された OCI 形式のモデルライブラリをホストしています。これらは Docker イメージと同様に docker model pull で取得できます。タグにはモデルのサイズおよび量子化情報が記載されています。
- 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だけでなく、企業のプライベートレジストリも利用できます。そのため、イメージをプッシュするのと同じように、同じ認証とアクセスポリシーを使って社内モデルをプッシュできます。
#3. docker model run を使ってチャットする
docker runがコンテナを起動するように、docker model runは会話を開始します。メッセージ引数を指定しなければ、ターミナルで対話型チャットが開きます。プロンプトを指定すると、一度だけ応答して制御を戻すため、スクリプト化に最適です。
モデルを最初に呼び出すとメモリに読み込まれ、以降の呼び出しでは読み込み済みのインスタンスが再利用されます。一定時間使われないと、エンジンがモデルを自動的にメモリからアンロードしてVRAMを解放するため、デーモンを管理する必要はありません。
#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でチャットを呼び出す方法は以下の通りです:
modelフィールドは、ローカルにダウンロード済みのモデルに対応している必要があります。OpenAIのPython SDKでは、base_urlの接続先を変更するだけで済みます。APIキーは任意の文字列で構いません。Model RunnerはローカルではAPIキーを要求しません。
#5. コンテナをモデルに接続する
Dockerの統合の利点はここにあります。アプリケーションのコンテナが内部DNSを介してモデルを呼び出すことができ、ホストにポートを公開する必要がありません。コンテナ内で実行されるコードでは、ベースURLは model-runner.docker.internal になります。
実際には、URLを環境変数を通じて渡すことで、ローカル環境(ポート12434)とコンテナ環境(内部DNS)で同じコードが動作するようにします。アプリケーションサービスにエンドポイントを注入するdocker-compose.ymlの例は以下の通りです:
#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 に接続できるインターフェースのエコシステムもあります。
#トラブルシューティング
- « 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へのオフロードをより細かく制御する方法を見るために。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。