自宅のPCやVPSにAI推論サーバーを自作すると、ChatGPT のような会話AIを完全ローカルで動かせるようになります。クラウドAPIの料金を気にせず、手元のデータをインターネットに送らずに済む点が最大の魅力です。
このガイドでは Ubuntu 24.04 LTS + Docker + Ollama + Open WebUI を組み合わせたAI推論スタックを一から構築する手順を解説します。結論から言うと、必要なソフトはほぼ apt と Docker の数コマンドで揃います。本記事の数値は Ubuntu 24.04.4 LTS 公式Dockerイメージで実際にコマンドを実行した実測値(2026-06-15 時点)です。GPU推論についても触れますが、検証ホストはGPU非搭載のため、GPUの速度は「目安」として正直にラベルしています。
この記事のポイント
- Ubuntu 24.04 LTS では
aptでdocker.io 29.1.3とpython3 3.12.3がそのまま入ることを実測で確認 - GPUをDockerから使う
nvidia-container-toolkitは標準リポジトリに入っておらず、NVIDIA公式リポジトリの追加が必須(実測で確認した詰まりポイント) - Ollama(ランタイム 0.30.8)+ Open WebUI(0.9.6)の組み合わせで、ブラウザから ChatGPT 風のUIでLLMと会話できる
- CPUのみのDocker環境でも
tinyllama:1.1bは warm平均 80.6 tokens/sec で動いた(実測)。7Bクラスを快適に使うなら VRAM 8GB 以上のGPUを推奨 - Grafana を足せばGPU/CPU/メモリ使用率をブラウザで可視化できる
このガイドで作るAIサーバーの全体像
完成後の構成は次のようになります。Ubuntu をベースに、Docker の上へサービスを順番に積み上げていくイメージです。

| レイヤー | ソフトウェア | 役割 | アクセス先 |
|---|---|---|---|
| OS | Ubuntu 24.04 LTS | ベース環境 | — |
| コンテナ基盤 | Docker (docker.io 29.1.3) | 各サービスの隔離実行 | — |
| LLMランタイム | Ollama | モデル管理・推論API | localhost:11434 |
| WebUI | Open WebUI | ブラウザからチャット | localhost:8080 |
| モニタリング | Grafana | GPU/CPU使用率の可視化 | localhost:3000 |
まず本記事の検証環境を確認しておきます。Ubuntu 24.04.4 LTS(Noble Numbat) の公式Dockerイメージで、各種コマンドの実出力を取得しました。

検証環境について
本記事の実測は Apple Silicon ホスト上の Ubuntu 24.04.4 LTS 公式Dockerイメージで行っています。そのためカーネルは 5.10.76(Docker仮想マシンのもの)、GPUは非搭載です。実機にUbuntuをインストールした場合のカーネルは 6.8.0-generic 系になります。GPU関連の実行例(nvidia-smi 等)はGPU搭載機での一般的な出力として示し、実測値とは区別しています。
必要なハードウェアと推奨スペック
AI推論サーバーに必要なスペックは、動かすモデルの規模で大きく変わります。まずは下の表を目安にしてください。
| 用途 | CPU | RAM | GPU VRAM | ストレージ | 目安モデル |
|---|---|---|---|---|---|
| お試し(CPU推論) | 4コア以上 | 8GB | 不要 | 50GB | tinyllama / llama3.2:3b |
| 軽量GPU運用 | 6コア以上 | 16GB | 8GB(RTX 3060等) | 100GB | llama3.1:8b |
| 本格運用(推奨) | 8コア以上 | 32GB | 24GB(RTX 4090等) | 500GB | llama3.3:70b、Mixtral:8x7b |
| VPS(クラウドGPU) | プロバイダ依存 | 24GB〜 | A100 / H100等 | 100GB〜 | 最大規模モデル |
VPSでGPUを借りる選択肢
自宅にGPUがない場合、GPU付きVPSを使う方法があります。Vultr・DigitalOcean・Lambda Labs などがコスパの高い選択肢です。月額契約よりも時間課金の方が、AI推論の試験用途には向いています。「まず動かしてみてから機材を買う」順序がおすすめです。
前提パッケージの版数を実測で確認する
構築を始める前に、Ubuntu 24.04 の apt でどのバージョンが手に入るかを apt-cache policy で実際に確認しました。22.04 との横断比較も載せます。ここを把握しておくと「バージョンが古くて動かない」というトラブルを避けられます。

実測の結論はシンプルです。Docker と Python は 24.04 の標準リポジトリでそのまま入りますが、nvidia-container-toolkit だけは候補が無い(標準リポジトリに収録されていない)という点が要注意でした。
docker.io:
Installed: (none)
Candidate: 29.1.3-0ubuntu3~24.04.2
$ apt-cache policy nvidia-container-toolkit | head -3
nvidia-container-toolkit:
Installed: (none)
Candidate: (none) ← 標準リポジトリに無い
Ubuntu 24.04 LTS のインストールと初期設定
AI推論サーバーのベースにはUbuntu 24.04 LTS(Long Term Support)を選びます。2029年4月までサポートされており、最新のMLフレームワークもひと通り対応済みです。
手順1:Ubuntu バージョンを確認する
既存の Ubuntu 環境、または新規インストール後に、次のコマンドで動作確認します。
VERSION=”24.04.4 LTS (Noble Numbat)”
$ nproc && free -h | grep Mem
5
Mem: 11Gi 3.7Gi 5.4Gi 167Mi 3.0Gi 8.0Gi
24.04.4 LTS (Noble Numbat) が表示されれば準備OKです。上はこの記事の検証環境(割り当て5コア・メモリ11GB)の実測値です。
手順2:システムを最新状態に更新する
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Reading package lists… Done
正直、ここで apt update を忘れがちですが、これをやらないと古いバージョンが入ったり、後のインストールでつまずきます。
NVIDIA ドライバと CUDA のインストール(GPU搭載機)
GPU推論を行うには NVIDIA ドライバが必要です。Ubuntu 24.04 には ubuntu-drivers というドライバ自動選択ツールが含まれています。以下はGPU搭載機での一般的な実行例です(本記事の検証ホストはGPU非搭載のため、出力例として示します)。
手順3:推奨ドライバを自動インストールする
$ sudo ubuntu-drivers autoinstall
Selecting previously unselected package nvidia-driver-560
Setting up nvidia-driver-560 …
$ sudo reboot
(再起動後)
$ nvidia-smi
| NVIDIA-SMI 560.35.03 Driver Version: 560.35.03 CUDA Version: 12.6 |
| GPU 0: NVIDIA GeForce RTX 4090 24564MiB |
インストール後は 再起動が必要です。nvidia-smi でGPU名とCUDAバージョンが表示されれば成功です。
手順4:CUDA Toolkit について
Ubuntu 24.04 の標準リポジトリには nvidia-cuda-toolkit 12.0.140 が含まれています(22.04 では 11.5.1 でした。いずれも実測値)。ただし後述の NVIDIA Container Toolkit を入れれば、Dockerコンテナ内からGPUを利用できます。
Ollama + Docker 利用時は CUDA Toolkit の個別インストールは不要
Ollama 自体が CUDA ランタイムを内包しているため、ホスト側に CUDA Toolkit を個別インストールする必要は通常ありません。必要なのはNVIDIAドライバと NVIDIA Container Toolkit です。ただし PyTorch や TensorFlow を直接動かす場合は別途 CUDA が必要になります。
Docker のセットアップ
AI関連ツールのほとんどは Docker イメージとして配布されています。Ubuntu 24.04 では apt から docker.io 29.1.3 をそのままインストールできることを実測で確認しました。

手順5:Docker をインストールして起動する
Setting up docker-compose-v2 (2.40.3+ds1-0ubuntu1~24.04.1) …
Setting up runc (1.3.4-0ubuntu1~24.04.1) …
Setting up containerd (2.2.1-0ubuntu1~24.04.2) …
Setting up docker.io (29.1.3-0ubuntu3~24.04.2) …
$ sudo systemctl enable –now docker
$ sudo usermod -aG docker $USER
(再ログイン後、sudo なしで docker コマンドを使えます)
上のログはすべて実測です。docker.io 29.1.3・containerd 2.2.1・runc 1.3.4 が一緒に入ります。
手順6:NVIDIA Container Toolkit をインストールする(GPU搭載機)
ここが今回いちばんの詰まりポイントです。先ほどの実測どおり nvidia-container-toolkit は Ubuntu標準リポジトリに無いため、NVIDIA公式リポジトリを追加してからインストールします。
$ curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed ‘s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g’ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
$ sudo apt update && sudo apt install -y nvidia-container-toolkit
$ sudo nvidia-ctk runtime configure –runtime=docker
$ sudo systemctl restart docker
設定後、GPUがDockerから見えるかを確認します。
| NVIDIA-SMI 560.35.03 Driver Version: 560.35.03 CUDA Version: 12.6 |
| GPU 0: NVIDIA GeForce RTX 4090 24564MiB |
AIパッケージのバージョンを確認する
Python周りのAIライブラリも、どのバージョンが手に入るか実際に確認しました。python3 は apt で、pip パッケージは PyPI の公式メタデータ(JSON API)から最新版を取得しています。

| パッケージ | バージョン(実測) | 取得方法 | 主な用途 |
|---|---|---|---|
| python3 | 3.12.3 | apt | AIスクリプト実行 |
| ollama(Python SDK) | 0.6.2 | pip / PyPI | Ollama クライアント |
| langchain | 1.3.9 | pip / PyPI | LLMオーケストレーション |
| langchain-community | 0.4.2 | pip / PyPI | 外部連携コンポーネント |
| chromadb | 1.5.9 | pip / PyPI | ベクトルDB(RAG用途) |
Ollama でLLMを動かす
Ollama はLLMのダウンロード・管理・推論APIサーバーをワンパッケージで提供するツールです。インストールスクリプトが NVIDIA / AMD / Apple Silicon GPU を自動検出してくれます。
手順7:Ollama をインストールする
>>> Installing ollama to /usr/local/bin…
>>> Ollama installed successfully
$ curl -s http://localhost:11434/api/version
{“version”:”0.30.8″}
Dockerで動かす場合は docker run -d -p 11434:11434 ollama/ollama:latest でも起動できます。本記事ではこの方法で起動し、API が version 0.30.8 を返すことを実測しました。
手順8:モデルをダウンロードして動かす
まずは超軽量な tinyllama:1.1b(637MB)で動作確認します。GPUがあれば llama3.1:8b や qwen2.5:14b も快適に動きます。
pulling manifest
success
$ ollama list
NAME ID SIZE MODIFIED
tinyllama:1.1b 2644915ede35 637 MB Less than a second ago
CPU推論スループットを実測してみた
GPU非搭載のDocker環境で、tinyllama:1.1b がどれくらいの速度で動くかを /api/generate(num_predict=128)を4回叩いて実測しました。warm(2回目以降)3回平均で 80.6 tokens/sec という結果です。1.1Bの小型モデルなら、GPUなしのCPUでも体感では十分実用的に動きました。

ただし、これはあくまで1.1Bの小型モデルの話です。7B〜70BクラスになるとCPUでは一気に遅くなるため、実用にはGPUが欲しくなります。下の表は各モデルの規模とVRAM目安です(GPUの速度は一般的な目安で、本記事ホストでは未計測)。

| モデル | サイズ | 最低VRAM目安 | 速度の目安(GPU) | 用途 |
|---|---|---|---|---|
| llama3.2:3b | 2.0GB | 4GB | 〜80 tok/s | 動作確認・軽量用途 |
| llama3.1:8b | 4.7GB | 8GB | 〜50 tok/s | バランス重視 |
| qwen2.5:14b | 9.0GB | 12GB | 〜35 tok/s | 多言語・高精度 |
| llama3.3:70b | 43GB | 48GB(量子化で24GB〜) | 〜10 tok/s | 最高性能 |
Open WebUI でブラウザからチャット
CLI だけでは使いにくいので、Open WebUI を使ってブラウザから ChatGPT 風のUIでLLMと会話できるようにします。Docker 1コマンドで起動でき、本記事では open-webui 0.9.6 系(ghcr.io/open-webui/open-webui:main)を実際に起動して画面を撮影しました。
手順9:Open WebUI を Docker で起動する
–name open-webui \
-p 8080:8080 \
–add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
起動したら http://localhost:8080(VPSの場合は http://<IPアドレス>:8080)をブラウザで開きます。初回はアカウント作成画面が出ます。

アカウントを作るとメインのチャット画面に入ります。Ollama にプル済みのモデルが自動で認識され、右上のドロップダウンで切り替えながらチャットできます。下は実際に稼働させた画面のスクリーンショットです。

左上のモデル名をクリックすると、取得済みモデルの一覧がドロップダウンで表示されます。複数モデルを入れておけば、用途に応じてワンクリックで切り替えられます。

外部公開する場合の注意
Open WebUI をそのまま外部に公開するのはセキュリティリスクがあります。本番運用ではNginx リバースプロキシ + SSL を前段に置き、認証を有効化してください。テスト中はファイアウォールで 8080 ポートをローカル限定にしておくことを強く推奨します。
Grafana でリソースモニタリング
GPU使用率・CPU・メモリを可視化するために Grafana を追加します。AI推論中の GPU 使用率をリアルタイムで確認できると、ボトルネックの特定に役立ちます。
手順10:Grafana を Docker で起動する
Status: Downloaded newer image for grafana/grafana:latest
$ docker ps –format ‘{{.Names}}\t{{.Ports}}’
grafana 0.0.0.0:3000->3000/tcp
open-webui 0.0.0.0:8080->8080/tcp
http://localhost:3000 を開くとログイン画面が表示されます。初期ユーザー名・パスワードはともに admin で、ログイン後すぐにパスワード変更を求められます。

ログインするとホームダッシュボードが表示されます。下は実際に admin でログインした直後の画面です。

ここにデータソースとして Prometheus を追加し、nvidia-dcgm-exporter や node_exporter を組み合わせると、GPU/CPU/メモリのメトリクスをリアルタイムで可視化できます。
AIサーバーの土台となるCPU性能を実測
構築した環境の処理能力を把握するために sysbench による CPU ベンチマークも実施しました。GPU推論の速度はGPUに依存しますが、モデルのロードや前後処理はCPUに乗るため、土台のCPU性能は無視できません。

Ubuntu 24.04 Docker 環境での sysbench CPU ベンチ(--threads=2 --time=10、3回実行)の実測結果は、events/sec が 14,519〜15,152、3回平均 14,918 でした。実行環境は ubuntu:24.04(Docker on Apple Silicon)・sysbench 1.0.20 です。お使いのCPUによってこの値は変わるので、自分の環境で同じコマンドを叩いて比較してみてください。
よくあるエラーと解決策
①「docker: permission denied」と出る
sudo usermod -aG docker $USER を実行した後、再ログインが必要です。newgrp docker で一時的に反映させることもできます。
②「nvidia-smi: command not found」と出る
NVIDIA ドライバが未インストールか、再起動が必要です。sudo ubuntu-drivers autoinstall の後は必ず sudo reboot してください。
③ Docker から GPU が見えない(nvidia-container-toolkit)
今回実測で分かったとおり、nvidia-container-toolkit は Ubuntu の標準リポジトリには入っていません。E: Unable to locate package nvidia-container-toolkit が出たら、手順6のとおり NVIDIA公式リポジトリを追加してから apt install し直してください。
④ Ollama と Open WebUI が通信できない
Open WebUI コンテナからホスト側 Ollama(11434番)へ接続するには --add-host=host.docker.internal:host-gateway が必要です。Open WebUI の設定で Ollama API URL を http://host.docker.internal:11434 に設定してください。疎通は次のコマンドで確認できます。
{“models”:[{“name”:”tinyllama:1.1b”,”model”:”tinyllama:1.1b”,…}]}
まとめ
Ubuntu 24.04 LTS + Docker + Ollama + Open WebUI の組み合わせで、AI推論サーバーを自作する手順を実測ベースで解説しました。
この記事の要点
- Ubuntu 24.04.4 LTS(Noble Numbat)はAIサーバー構築に安定した選択肢
- apt で docker.io 29.1.3・python3 3.12.3 がそのまま入る(実測)
- GPUをDockerで使う nvidia-container-toolkit は標準repoに無く、NVIDIA公式repoの追加が必須
- Ollama 0.30.8 + tinyllama:1.1b はCPUのみのDockerでも warm平均80.6 tokens/sec で動いた
- Open WebUI でブラウザチャット、Grafana でリソース可視化まで Docker で組める
GPU を自前で用意するのが難しい場合は、GPU付きのクラウドVPSを使う方法もあります。Vultr の Cloud GPU や DigitalOcean の GPU Droplets は時間課金で試せるため、まず動作確認してから機材を購入するという順序がおすすめです。
次のステップとして、LangChain + ChromaDB(ベクトルDB)を組み合わせた RAG(検索拡張生成) パイプラインの構築もおすすめです。詳しい手順はこちらの記事も参考にしてください。


コメント