Docker with NVIDIA GPU で Ollama + Open WebUI を導入する
Ubuntu Server 24.04 LTS をインストールした PC に Docker with NVIDIA GPU で Ollama + Open WebUI を導入したときの備忘録
はじめに
Ollama(オープンソースLLMをローカル環境で実行できるプラットフォーム(LLM ランナー))と Open WebUI(LLMランナーを用いて ChatGPT のように手軽に LLM を利用できる Web インターフェース)を NVIDIA GPU を有効にした Docker コンテナで導入する.
PCのスペック:
- CPU: AMD Ryzen 5950X 16Core/32Threads
- Memory: DDR4 32GB
- SSD: 1TB
- GPU: NVIDIA RTX 3080Ti 12GB
以下を導入済みとする.
- NVIDIA CUDA Toolkit
- NVIDIA Container Toolkit
- Docker
参照:Ubuntu Server 24.04 LTS に CUDA 12.8 をインストールする
Ollama + Open WebUI コンテナの起動
Open WebUI の Quick Start ページを参照し,Open WebUI Bundled with Ollama(With GPU Support) の箇所に記載されているコマンドでコンテナを起動するだけで簡単に導入できる.
GPU を用いて起動するコマンド
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
dokcer run のオプションの説明:
-d
コンテナを「デタッチ」モード(バックグラウンド)で実行-p 3000:8080
コンテナの8080番のポートをホストの3000番にマッピング--gpus=aal
利用可能なすべての GPU を使用-v ollama:/root/.ollama
ホストの ollama をコンテナの /root/.ollama にマウント-v open-webui:/app/backend/data
ホストの open-webui をコンテナの /app/backend/data にマウント
-v
オプションのホストの volume の指定において,ディレクトリ名のみの場合,デフォルトでは /var/lib/docker/volumes/ 以下のディレクトリとなる(なければ作成される)--name open-webui
コンテナ名を open-webui に設定--restart always
コンテナを常に再起動(PC起動時に Docker デーモンが自動でコンテナを起動)
Docker イメージについては,GitHub Container Registry から公開されている最新版の Open WebUI (+ Ollama) Docker イメージを起動する.一度実行すれば,PC起動時に自動的にコンテナが起動し,Open WebUI を利用できる状態となる.
もし GPU を用いずに CPU のみで起動する場合は以下のコマンドを実行する.
docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
LLM モデルのセットアップ
最初は,LLM が何も入っていないので,セットアップする必要がある.
以下のコマンドで LLM をセットアップできる.
docker exec open-webui ollama pull モデル名
利用可能なモデルは Ollama のモデルライブラリで検索できる.
モデルのセットアップの例
docker exec open-webui ollama pull llama3.2:3b
docker exec open-webui ollama pull gemma3:4b
docker exec open-webui ollama pull phi4-mini:3.8b
docker exec open-webui ollama pull deepseek-r1:7b
docker exec open-webui ollama pull qwen2.5:7b
HuggingFace の GGUF ファイルとして提供されている LLM をセットアップするには,以下のように実行すればよい.
docker exec open-webui ollama pull huggingface.co/リポジトリ名
※ GGUF:C/C++で書かれた機械学習フレームワーク「GGML」で使われるモデルのバイナリファイルの形式
例)日本語特化モデル ELYZA の Llama-3-ELYZA-JP-8B をセットアップする場合
docker exec open-webui ollama pull huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF
もしくは,下記のように Open WebUI の設定(「設定」->「管理者設定」->「モデル」)から GUI でモデルをセットアップすることもできる.
Open WebUI にアクセス
上記のように Ollama + Open WebUI コンテナが起動していれば,導入した PC でブラウザを起動して http://localhost:3000
にアクセスし,Open WebUI を利用できる.
初回アクセス時には,管理者アカウント登録(あくまでもローカルでの登録処理)が必要となるので,名前・メールアドレス・パスワードを設定する(メールアドレスは実在してない適当なものでも構わない).
Open WebUI で新たなモデルをセットアップする場合,管理者でログインし,「設定」->「管理者設定」->「モデル」を選択し,「モデルの管理」ボタン(ダウンロードボタン)をクリックする.「Ollama.com からモデルをプル」の枠内にモデル名を入力し,ダウンロードボタンをクリックする.モデル名は Ollama のモデルライブラリにあるものを入力すればよい.
LAN内の他の端末から Open WebUI にアクセスできるようにする
ファイヤーウォールが有効(アクティブ)であることを確認
sudo ufw status
有効でなければ有効化
sudo ufw enable
ファイヤーウォールの設定で 3000番のポートの通信を許可
sudo ufw allow 3000
他の端末からは http://IPアドレス:3000
でアクセスできる(IPアドレスは Open WebUI を導入した PC のIPアドレスを指定).
Open WebUI のユーザーの追加
管理者以外でも Open WebUI を利用できるようにするには,ユーザーを追加する必要がある.
Open WebUI に管理者でログインし,「設定」->「管理者設定」->「ユーザ」を選択し,+ボタンでユーザーを追加する(名前・メールアドレス・パスワードを適当に設定).
すべてのユーザがセットアップした LLM モデルを使えるように設定
Open WebuUI に管理者でログインし,「設定」->「管理者設定」->「モデル」を選択し,各モデルの編集ボタンをクリックして,Visibility が「Private」になっていれば「Public」に変更する.
Ollama のアップデート
新たな LLM をダウンロード(Ollama で pull)しようとすると
The model you are attempting to pull requires a newer version of Ollama.
というエラーが表示される場合,Ollama をアップデートする必要がある.Docker コンテナの Ollama を最新版にアップデートするには
docker exec -it open-webui bash
で Open WebUI のコンテナに入って
curl -fsSL https://ollama.com/install.sh | sh
を実行すればよい.
Open WebUI のアップデート
手動アップデート
- 古いコンテナの停止と削除
docker rm -f open-webui
-f
(--force
) は実行中のコンテナを強制的に削除するオプション - 最新の Docker イメージの pull
docker pull ghcr.io/open-webui/open-webui:ollama
- 更新したイメージでコンテナを再起動
GPU を用いて起動するコマンド
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
上記のアップデートを行っても,Ollama の設定やこれまでダウンロードした LLM はホストの格納場所(/root/.ollama や /app/backend\data)にそのまま残っているので,これまで通り使用できる.
※ Docker イメージでは,Ollama のバージョンが最新ではないことがあるので,このアップデートにより Ollama のバージョンが下がって新しめの LLM が使えなくなる場合がある.その場合,改めて上記の Ollama のアップデートを行えばよい.