Docker Model Runner(DMR)とは?Docker DesktopでローカルAIを動かし、記事を生成

Docker Model Runner(DMR)の解説記事用アイキャッチ画像。Docker DesktopのAI画面とqwen3のローカル実行イメージ、コンテナ、AIアイコンを組み合わせて表現した青基調のビジュアル。 Docker

「ローカルでAIを動かしてみたいけれど、何から始めればいいのか分からない」
そんなときに候補になるのが、Docker Model Runner(DMR)です。

DMRは、Docker上でAIモデルを動かすための仕組みです。
DMRを使うとローカルでモデルを管理・実行できます。
OpenAI互換、Anthropic互換、Ollama互換のAPIにも対応してます。

またDMRは、モデルをダウンロードした後は、APIキーなし・継続課金なし・オフラインでも利用しやすい点が特長です。

この記事では、Windows 11 + VS Code + Git Bash を使用し、Docker DesktopでDMRを使う準備から、ローカルLLM(qwen3)での簡単な動作確認、さらにAIO(AI Overview)を意識した記事生成用のPythonプログラムを作って動かすところまで、順番にやさしく説明します

DMR(Docker Model Runner)の概要

DMRは、「LLM をコンテナの一つ」として管理して、Docker上でローカルLLMを扱う機能です。

普通のAIサービスは、サービスに加入してクラウドAPIにアクセスして使いますが、DMRは自分のパソコン上でAIモデルを動かすことを前提にしています。

DMRはDocker Hub、OCI互換レジストリ、Hugging Faceのモデルを扱え、ローカルモデルの管理やログ確認もできます。

また、DMRは推論エンジンとして llama.cpp、vLLM、Diffusers をサポートしており、用途に応じて使い分けられます。

Docker Desktopで使う場合

Docker Desktopのインストール

Docker Desktopは、Windowsでコンテナを使いやすくするための公式のGUIアプリです。

Install Docker Desktop on Windowsに従って、インストールすると使えます。

Docker Desktopの設定

Docker Desktopをインストールしたら、DMRを使えるように設定します。

Docker Desktopの Settings から AI を開き、Enable Docker Model Runner をオンにします。

次に、今回の様に、ホスト側からアクセスして使う場合は、TCP host access を有効にします。
この項目で、アクセス時のポート番号(default:12434)を指定できます。

対応するNVIDIA環境があれば、GPU推論を有効にする設定も用意されています。

docker desk top AI設定画面
docker desk top AI設定画面

今回の作業では、以下の2つがONになっていれば、DMRが使用できて、http://localhost:12434でアクセスできます。

  • Enable Docker Model Runner
  • host-side TCP support

qwen3を使ってみる

作業環境では、Windows 11でエディタにVS Codeを使用しターミナルは、Git Bashを使っています。

DMR関連のコマンド確認

ここからは、実際に手を動かしてみます。

まず、Git Bashを開いて、DMR関連コマンドが使えるか確認します。

docker model versionの確認

docker model listの確認

qwen3のロードと実行

CLIからモデルを事前ロードしたい場合は、docker model run -d を使います。
d(detached)バックグラウンドで起動するためのオプションです。

curlコマンドを使っての簡単な動作確認

モデル一覧の確認

LLMにプロンプトを送信する場合、Git Bashでは、日本語を使うと文字コードの違いによりパースエラーが発生するので、ファイルに保存してから送るようにします。

data.json という名前で送信内容を保存します。

Git Bash でそのファイル(data.json)を使って実行します。

回答の文章だけを抜き出したい場合

jq:JSON を整形して表示するツールです。存在しない場合は、こちらからダウンロードできます。

Pythonプログラムの作成と実行

Docker公式のPython例では、ベースURLは http://localhost:12434/engines/v1、APIキーは not-needed とされています。
ここでは、DMRはAPIエンドポイントを使います。

参考:DMR REST API | Docker Docs

Pythonプログラム仕様

今回は、AIO(AI Overview)を意識した記事作成ツールを作ります。

  • 冒頭に結論の要約ブロック
  • 見出しを質問型に寄せる
  • 各見出しの直下で短く先に答える
  • FAQ を付ける

このツールでは、最初に要点を見せて、読み手にもAIにも分かりやすい構成の記事が生成されます。

Pythonコード

VS Codeで aio_writer.py という名前のファイルを作り、次のコードを保存します。

実行方法

Git Bashで次を実行します。

キーワードを入力してくださいと表示されたら、以下の様な作りたい記事のキーワードを入力して進むと、AIOを意識した構成の記事のたたき台が生成されます。

生成結果は、画面に表示されるとともにaio_article.txt に保存されます。

AIエージェント 入門

主要コマンド一覧(クイックリファレンス)

以下は、よく使うコマンドのまとめです。

コマンド内容
docker model lsローカルに保存されているモデルの一覧を表示
docker model pull [モデル名]指定したモデルをダウンロード(Docker Hub や Hugging Face から)
docker model run [モデル名]モデルを起動して対話モードに入る
docker model run -d [モデル名]モデルをバックグラウンド(デタッチモード)で起動
docker model inspect [モデル名]モデルの詳細情報(レイヤー、アーキテクチャなど)を表示
docker model rm [モデル名]ローカルのモデルを削除
docker model configureコンテキストサイズなどの実行設定を変更

参考:docker model run | Docker Docs

DMR使用上の注意点

Docker DesktopでAI機能をオンにしただけでは、ホスト側から常に使えるとは限りません
localhost:12434 で使いたいときは、TCP host access の設定も必要です。

初回は少し遅く感じることがあります
これは故障ではなく、モデルのロードが入るためです。Docker公式でも、モデルは必要時にメモリへ読み込まれ、一定時間アイドルになるまで残るためです。

モデルはサイズが大きいことがあります
たとえば軽量モデルと比べると、より大きなモデルは保存容量やメモリ使用量が増えやすいです。
まず軽めのモデルで動作を確認してから、必要に応じて大きなモデルへ進むことがおすすめです。

Git Bashでの作業
Git Bashでは日本語を直接 curl に書くと、環境によって文字化けすることがあります。
これはDMRの問題ではなく、シェルや文字コードの影響です。

まとめ

DMRは、Docker Desktopの上でローカルAIを扱うための仕組みです。
最初は少し難しく見えますが、やることを分けて考えると意外と整理しやすいです。

  • Docker Desktopを入れる
  • AI設定でDMRを有効にする
  • qwen3などのモデルを使って動作確認する
  • PythonからOpenAI互換APIとして使う

この流れで進めると、はじめて使う場合でも迷わずに使えます。

参考リンク

タイトルとURLをコピーしました