LM Studio をdockerで動かした | slidict.io

JA | EN

LM Studio をdockerで動かした

翻訳表示: 日本語 英語
yubele
yubele
フォロワー 0人
最終更新: 2026/04/01
読む時間: 01:25

共有

コード

  • 軽量な社内利用・検証用途では SaaS LLM の従量課金が過剰になる

  • ローカルLLMをAPI化して、コスト上限を物理リソースで制御したい

  • 個人・小規模チームでも再現可能な構成を優先する必要がある

  • 解決方針は「LM StudioをDocker上でAPI化して、課金を抑える設計を採用すること」

  • ベースOSは ubuntu:24.04 を採用。LM Studio公式インストーラ前提のglibc環境を活用

  • GUIは使わず、Electron系依存(GTK / X11)を明示的にインストールして依存解決を回避

  • LM Studioは install.sh 経由で導入。公式手順を踏み、将来のアップデート追従を容易に

  • APIポートは 1234 を公開。OpenAI互換APIとしてアプリ側の差し替えを容易に

  • モデルは google/gemma-3-4b をデフォルト指定。過度な高性能より「使いすぎない制御」を重視

  • 環境設計はCPU/GPU・メモリ・同時実行数で自然に利用制限がかかるようにする

  • 課金を避けたい用途にはローカルLLMを選択。コストは物理リソースで管理する

  • API公開を前提とした設計で、後の運用でAPIゲートウェイ等の制限を付けやすくする

  • 起動・運用の柔軟性を高めるため、起動処理を Dockerfile から分離する entrypoint を採用

  • 今後の検討領域

    • GPU活用(--gpus all)の有無

    • モデルキャッシュの volume化

    • リクエスト数・並列数の制限設計

  • 次のアクションとして、環境変数でモデル切替を可能にする、context length/threadsの調整、軽量モデルの比較検証を検討

  • 解決策の核

    • ubuntu:24.04 ベースで、公式インストール手順に沿って LM Studio を導入

    • GUIは不要、依存は最小化して必要なライブラリだけをインストール

    • LM Studioを API ポート 1234 で公開して、OpenAI互換APIとして扱える設計

    • デフォルトモデルは google/gemma-3-4b、コストを抑えつつ現実的な性能を確保

    • エントリポイントを分離して起動オプションの変更をDockerfileから切り離し、将来のアップデート追従を容易に

  • 実装イメージ(核心点)

    • ベース: ubuntu:24.04

    • GUI依存を明示的にインストールしつつGUIは使わない設計

    • install.sh 経由で LM Studio 導入

    • PATHとLMSTUDIO_DEFAULT_MODELの設定

    • EXPOSE 1234、entrypoint.sh を用いた起動

  • 実際のコード構成は以下のDockerfileが最小構成として機能する

このDockerfileは LM StudioをDocker上で動かし、ローカルLLMをAPIとして提供するための最小構成。

FROM ubuntu:24.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    bash \
    ca-certificates \
    curl \
    libasound2t64 \
    libatomic1 \
    libatk-bridge2.0-0 \
    libatk1.0-0 \
    libc6 \
    libcairo2 \
    libcups2 \
    libdbus-1-3 \
    libdrm2 \
    libgbm1 \
    libglib2.0-0 \
    libgtk-3-0 \
    libnspr4 \
    libnss3 \
    libpango-1.0-0 \
    libx11-6 \
    libx11-xcb1 \
    libxcb-dri3-0 \
    libxcomposite1 \
    libxdamage1 \
    libxext6 \
    libxfixes3 \
    libxkbcommon0 \
    libxrandr2 \
    libgomp1 \
    libxshmfence1 \
    xdg-utils && \
    rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://lmstudio.ai/install.sh | bash

ENV PATH=/root/.lmstudio/bin:$PATH
ENV LMSTUDIO_DEFAULT_MODEL=google/gemma-3-4b

EXPOSE 1234

COPY docker/lmstudio/entrypoint.sh /usr/local/bin/lmstudio-entrypoint.sh
RUN chmod +x /usr/local/bin/lmstudio-entrypoint.sh

CMD ["/usr/local/bin/lmstudio-entrypoint.sh"]

このDockerfileは LM StudioをDocker上で動かし、ローカルLLMをAPIとして提供するための最小構成。

構成の観点

  • ベースは ubuntu:24.04
    → LM Studio公式インストーラが前提としているglibc環境に合わせるため

  • GUI不要だが、Electron系依存ライブラリ(GTK, X11系)を明示的にインストール
    lmstudio バイナリ起動時の依存解決用

  • install.sh を使って公式手順どおりにLM Studioを導入
    → 将来のアップデート追従を優先

判断基準

  • 課金を避けたい用途(軽量な社内AI、検証用API)なのでローカルLLMを採用

  • モデルは google/gemma-3-4b をデフォルト指定
    → メモリ消費と性能のバランス重視

  • APIポートは 1234 を公開
    → LM Studioの標準API互換

運用上のポイント

  • 実際の起動処理は entrypoint.sh に切り出し
    → モデル切替やオプション変更をDockerfileに書かずに済む

  • 本番用途では

    • GPU対応(--gpus all

    • モデルキャッシュのvolume化

    • 利用制限(リクエスト数・並列数) を検討余地あり

次に試すこと

  • LMSTUDIO_DEFAULT_MODEL を環境変数で切替可能にする

  • --context-length--threads の明示指定

  • 軽量モデル(Phi / Qwen)との比較検証

Background

スライド作成を
無料で始める

AIがあなたのスライドを自動生成。無料で、すぐに体験できます。

LM Studio をdockerで動かしたのサムネイル(1ページ目)
1 / 9