Docker Model Runner を使って AI モデルをローカルでビルド・実行・パッケージ化する方法

このガイドでは、Docker Model Runner を使ってローカル環境で AI モデルを実行・パッケージする方法をご紹介します。これは、Docker Hub や Hugging Face から取得した AI モデルを簡単に扱える軽量かつ開発者フレンドリーなツールです。CLI や API での実行、自作モデルの公開、Python 環境や Web サーバーをセットアップせずにすべて行う方法を学べます。

開発における AI とは?

人工知能 (AI) は、人間の知能を模倣するシステムを指し、次のような能力を含みます。

  • 機械学習による意思決定
  • 自然言語処理 (NLP) による言語理解
  • コンピューター ビジョンによる画像認識
  • 新しいデータからの自動学習

よく使われる AI のタイプ

  • 機械学習 (ML) → 構造化/非構造化データから学習
  • ディープラーニング → パターン認識に特化したニューラル ネットワーク
  • 自然言語処理 (NLP) → 人間の言語を理解・生成
  • コンピューター ビジョン → 画像の認識と解釈

AI モデルをローカルで実行・パッケージ化する理由

AI モデルをローカルで実行およびパッケージ化することで、AI ワークフローを完全に制御できます。外部 API に依存せず、ローカルマシンで直接モデルを動かすことで、以下のようなメリットが得られます。

  • API 通信による遅延なし、高速な推論
  • データやプロンプトを自分の環境に保持できる高いプライバシー
  • モデルのパッケージやバージョン管理による柔軟なカスタマイズ
  • Docker や GitHub Actions との CI/CD 連携が容易
  • オフライン環境やエッジ用途にも対応可能

Docker や Hugging Face のようなプラットフォームにより、最先端の AI モデルにすぐアクセス可能になりました。ローカル実行により、低遅延、高プライバシー、高速な開発サイクルが実現します。

AI の実用的なユースケース

  • チャットボット & バーチャル アシスタント → サポート業務の自動化 (例: ChatGPT、Alexa)
  • 生成系 AI → 文章・画像・音楽の生成(例:Midjourney、Lensa)
  • 開発支援ツール → コード補完やデバッグ(例:GitHub Copilot)
  • 小売業向けインテリジェンス → ユーザー行動に基づく商品レコメンド
  • 医療画像解析 → スキャン画像の解析による迅速な診断支援

Docker Model Runner を使ったローカル AI モデルの実行とパッケージ化方法

必要なもの

  • Docker Desktop 4.40 以上
  • Docker Desktop の設定で Experimental features と Model Runner を有効化
  • (推奨) NVIDIA GPU 搭載の Windows 11 または Apple Silicon 搭載の Mac
  • モデルを Docker Hub や Hugging Face からダウンロードするためのインターネット接続

事前準備 ~ Docker Model Runner を有効化

  1. Docker Desktop を開く
  2. 設定 → 開発中の機能 (Features in development) へ
  3. 「Experimental features」を有効化して、適用後に Docker を再起動
  4. 再起動後、「Beta」タブで「Docker Model Runner」を有効化
  5. (任意) localhost から API にアクセスできるよう TCP サポートを有効化

これにより、docker model CLI や Docker Desktop の「Models」タブからモデルを管理可能になります。

ステップ 1 ~ モデルの取得

Docker Hub から取得

docker model pull ai/smollm2

Hugging Face から取得 (GGUF フォーマット)

docker model pull hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF

GGUF とは?
GPT スタイルのモデルに最適化された軽量バイナリ形式で、CPU 推論に強い llama.cpp 向けに設計されています。モデルの重み、トークナイザー、メタデータが 1 ファイルに統合されており、パッケージングに最適です。

ステップ 2 ~ (任意) ローカル レジストリへタグ付け & プッシュ

docker model tag hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF localhost:5000/foobar
docker run -d -p 6000:5000 --name registry registry:2
docker model push localhost:6000/foobar
docker model list

ステップ 3 ~ モデルを実行

プロンプトを一度だけ送る

docker model run ai/smollm2 "What is Docker?"

対話モードで実行

docker model run ai/smollm2

※ モデルは必要に応じてメモリに読み込まれ、5 分間操作がなければ自動でアンロードされます。

ステップ 4 ~ OpenAI 互換 API 経由でテスト

TCP アクセスを有効化

docker desktop enable model-runner --tcp 12434

curl による呼び出し例

http://localhost:12434/engines/llama.cpp/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "ai/smollm2",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell me about the fall of Rome."}
]
}'

API キーは不要。すべてローカルで安全に処理されます。

ステップ 5 ~ 自分のモデルをパッケージング

すでに .gguf ファイルがある場合、自作モデルを Docker 対応アーティファクトとしてパッケージ可能です。

docker model package \
--gguf "$(pwd)/model.gguf" \
--license "$(pwd)/LICENSE.txt" \
--push registry.example.com/ai/custom-llm:v1

これにより、以下のように pull 可能になります。

docker model pull registry.example.com/ai/custom-llm:v1

ステップ 6 ~ 最適化と運用

  • docker model logs でモデルの使用状況を確認
  • CI/CD パイプラインでモデル取得・スキャン・パッケージを自動化
  • モデルのバージョン管理やトレーニング履歴を記録
  • カスタムモデルには :v1, :2025-05 のようなタグを使い、latest を避ける
  • 一度にロードできるモデルは 1 つのみ

Docker Compose 連携 (オプション)

Docker Compose v2.35+ (Docker Desktop 4.41+ に同梱) では、provider.type: model を使ってモデルを compose.yml に直接定義できます。

docker compose up 実行時に、Model Runner がモデルを取得・起動し、必要な環境変数 (MY_MODEL_URL など) を他のサービスに自動注入します。追加コードなしで AI を組み込める仕組みです。

開発時の課題と対策

  • レイテンシー対策 → 量子化済み GGUF モデルを使用
  • セキュリティ → 信頼できないモデルは実行しない、ライセンスを確認
  • コンプライアンス → 個人情報をマスキング、データ利用の同意を取得
  • コスト対策 → ローカルで実行してクラウド費用を削減

ベストプラクティス

  • GGUF モデルを優先的に使用 (CPU 実行に最適)
  • パッケージ時には --license オプションでライセンス明示
  • latest ではなくバージョン付きタグを使用
  • docker model logs で運用状況を監視
  • 信頼できるソース (Docker Hub の ai/ 名前空間や認証済み Hugging Face リポジトリ) からのみ取得
  • 各モデルのライセンスと使用条件を確認

今後の展望

  • RAG (検索拡張生成) 対応
  • マルチモーダル対応 (テキスト+画像/音声/動画)
  • Docker Compose における LLM サービスの正式対応
  • Docker Desktop の Model Dashboard 機能拡張
  • プライベート AI モデル向けのセキュアなデプロイ・パッケージ手法

まとめ

GPU クラスタや外部 API は不要。Docker Model Runner で、以下のことが実現できます。

  • Docker Hub や Hugging Face から事前ビルドモデルを取得
  • CLI や API、Docker Desktop の UI からローカル実行
  • 自作モデルをパッケージして OCI アーティファクトとして公開
  • CI/CD と連携し、安全かつ効率的に AI を運用

単なるコンテナーのデプロイにとどまらず、インテリジェンスを届けましょう。


エクセルソフトは Docker の Preferred Reseller として、Docker Desktop を販売しています。Docker 製品のライセンスや機能に関するご質問、製品デモのご要望を承っています。お問い合わせはこちらから。


*本記事は、Docker 社が提供している以下の記事から抜粋・転載したものです。

Docker Model Runner を使用して AI モデルをローカルでビルド、実行、パッケージ化する方法

Docker の最新情報をお届けするエクセルソフトのメールニュース登録はこちら

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