Docker Model Runnerとは?
Docker Model Runnerは、
-
機械学習モデル(例:LLM)をDockerコンテナ感覚で起動できる仕組み
です。
機械学習モデルをAPIサーバー化するには、
- ライブラリインストール
- モデルロードコードの実装
- 推論エンドポイントの作成
といった工程が必要でしたが、
Model Runnerを使うと
docker model run <モデル名>
このコマンド1行で
- モデルの取得
- サーバー立ち上げ
- APIエンドポイント公開
まで自動で完了します。
Model Runner全体イメージ図
[ Docker Hub上のモデル ]
↓ pull
+----------------------+
| Docker Model Runner |
| (モデル実行環境) |
+----------------------+
↓ API公開
[ Webアプリケーションからアクセス ]
特徴まとめ
特徴 | 内容 |
---|---|
セットアップ不要 | 依存関係やサーバーコードを意識せず即起動 |
Docker CLIから操作 |
docker model run コマンドだけでOK |
標準化されたAPI | OpenAI互換エンドポイント(/v1/completions など)を自動提供 |
将来的にGPUサポート予定 | 現時点はCPUメイン、GPUロードマップあり |
実際にWebサーバーと連携できるのか?
結論,可能です。
Docker Model Runnerが公開するエンドポイントは普通のREST APIなので、
別のWebサーバー(Flask, FastAPI, Next.jsなど)から問題なく通信できます。
Webサーバーとの連携構成図
+-----------------+ HTTP POST +------------------------+
| Web Application | ---------------------> | Docker Model Runner LLM |
| (e.g., Flask) | | (モデルAPIサーバー化) |
+-----------------+ +------------------------+
実際のdocker-compose例
docker-compose.yml
を使って、LLMサーバーとWebサーバーを立ち上げる例です。
version: '3.8'
services:
llm:
image: ghcr.io/docker/model-runner
ports:
- "11434:11434"
command: --model mistralai/Mistral-7B-Instruct-v0.1
web:
build: ./web
ports:
- "3000:3000"
environment:
- LLM_SERVER=http://llm:11434
depends_on:
- llm
-
llm
コンテナ(Model Runner)がポート11434でモデルAPIを公開 -
web
コンテナ(Webアプリ)がhttp://llm:11434
にアクセスして推論リクエストを送信
Compose内ネットワークにより、サービス名(llm
)をホスト名として利用できます。
Webサーバー側サンプル(Flaskの場合)
簡単なFlaskアプリを例に、Model Runnerに質問するコードを示します。
import requests
from flask import Flask, request, jsonify
app = Flask(__name__)
LLM_SERVER = "http://llm:11434"
@app.route("/ask", methods=["POST"])
def ask():
user_prompt = request.json["prompt"]
res = requests.post(
f"{LLM_SERVER}/v1/chat/completions",
json={"messages": [{"role": "user", "content": user_prompt}]}
)
return jsonify(res.json())
if __name__ == "__main__":
app.run(host="0.0.0.0", port=3000)
注意点(2025年4月現在)
注意点 | 内容 |
---|---|
一般公開はまだ | 現在はクローズドβ。招待制で利用可能。 |
サインアップ必要 | 公式サイトから申し込み可能。 |
モデルは制限あり | 初期はMistralやLlamaベースの中小モデル中心。 |
CPU優先 | 現時点はGPU非対応。将来対応予定あり。 |
まとめ
Docker Model Runnerを使うことで、
- モデルAPIサーバーの構築を極限まで簡単にできる
- Docker Composeを使えばWebアプリから自然に連携できる
といった大きなメリットがあります。
正式版リリースが非常に楽しみです。
興味がある方は、今のうちにβ版登録をしてみることをおすすめします!
▶︎ Docker Model Runner Beta Sign-up
最後に
DockerがAIインフラに本格参入してきた今、
開発者にとって「モデルを自由に扱うスキル」はますます重要になっていくと感じました。
今後、個人開発や小規模チームでも強力なLLMを扱える時代が到来しそうです。
これからの進化にも注目していきたいと思います!