今まで、ローカル環境で大規模言語モデル(LLM)を簡単に実行・管理できるツールとして第1回目としてLM Studioをご紹介し、第2回目は、端末上のOllamaによりPCにダウンロードしたAIモデルを利用しブラウザーで利用できるようにOpen WebUIをPythonによる仮想環境上で動作させる方法についてご紹介させていただきました。
第3回目となる今回は、Pythonではなく、Docker上で動作させる手順について見ていきたいと思います。
最後には便利な管理コマンドもまとめてみました。
PythonとDocker、どちらがいいの?
Open WebUIを、PythonとDockerの、いずれで稼働させても体感的に差はありません。
企業環境でDocker利用が制限されている場合、開発でOpen WebUIのコードをローカルで直接いじってデバッグしたい場合、Python上で動かすことになりますが、日常での運用面でいくとDockerの方が管理が楽です。
Pythonの場合、仮想環境であるvenvを分けても、実行ユーザーやsystemd設定がホストに残りやすいです。Dockerでは不要になったら「docker rm」で完全撤収ができます。環境を壊してしまっても「docker run/compose」で素早く復旧できて便利です。
・・・というわけで、Docker上で作動させていきたいと思います。
事前準備
Docker本体のインストール
sudo apt update
sudo apt install -y docker.io
自分のユーザーをdockerグループに追加させます。
sudo usermod -aG docker $USER
設定を反映させます。
newgrp docker
dockerが自動起動するようにします。
sudo systemctl enable --now docker
動作確認してみましょう
docker run --rm hello-world
次のように表示されれば正常に動作しています。

Ollamaのインストールとモデルの取得
インターネットに接続した状態で、ターミナルで以下のコマンドを実行するだけで、ローカルLLMを管理・実行するためのフレームワーク「Ollama」がインストールされます。
curl -fsSL https://ollama.com/install.sh | sh
Ollamaを自動起動させるようにします。
sudo systemctl enable --now ollama
モデルを取得します。(例:人気のGoogleのgemma3の場合)
ollama pull gemma3
動作を確認します。一覧にgemma3が表示されていればOKです。
curl -s http://127.0.0.1:11434/api/tags
DockerでOpen WebUIを起動
Open WebUIのデータ永続化用のボリュームを作成します。
docker volume create open-webui-data
Open WebUI を host ネットワークモードで起動
docker run -d --name open-webui \
--network host \
-v open-webui-data:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
ghcr.io/open-webui/open-webui:main
起動確認
ブラウザで「localhost:8080」でEnter。
初回は名前、メールアドレス、パスワードを登録して管理者アカウントを作成します。

次のように端末で「ollama pull モデル名」で複数のAIモデルをダウンロードしておけば、モデルを切り替えて使用することができます。
ollama pull gpt-oss:20b
ollama pull ph4-reasoning:14b

稼働状況を確認するコマンド
次のコマンドでOpen WebUIが稼働しているかどうかを確認できます。
docker ps -a | grep open-webui

Open WebUIの開始、停止、再起動方法
次のコマンドでOpen-WebUIを開始します。
docker start open-webui
停止は次のコマンドです。
docker stop open-webui
改めて起動させるコマンドは次の通りです。
docker start open-webui
再起動させるコマンドは次の通りです。
docker restart open-webui
Open-WebUIのアップデート手順
1,最新イメージを取得します。(かなり時間がかかります)
docker pull ghcr.io/open-webui/open-webui:main
2,現在のコンテナを停止・削除
docker stop open-webui
docker rm open-webui
3,再度コンテナを起動
docker run -d --name open-webui \
--network host \
-v open-webui-data:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
ghcr.io/open-webui/open-webui:main
ハマってしまったポイントと対処法
1) docker コマンドが「permission denied」
1) docker コマンドが「permission denied」
症状: permission denied while trying to connect to the Docker daemon socket
原因: ユーザーが docker グループに未所属、または再ログインしていない
対処法:
sudo usermod -aG docker $USER
newgrp docker # または一度ログアウト/ログインします。
2) Open WebUI には入れるがモデルが出ない
ホスト→Ollama 下記コマンドでJSONで返答が表示されたらUI側の設定を確認。
curl -s http://127.0.0.1:11434/api/tags
コンテナ→Ollama(hostモードなら同じループバックでOK)
docker exec -it open-webui sh -lc 'apk add --no-cache curl >/dev/null 2>&1 || true; curl -s http://127.0.0.1:11434/api/tags'
3)再起動後も自動で起動させたい
下記を端末上で実行させて解決
docker run -d --restart unless-stopped --name open-webui \
--network host \
-v open-webui-data:/app/backend/data \
-e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
ghcr.io/open-webui/open-webui:main
不具合発生時のチェックリスト
不具合が発生して困ったときのための備忘録としてまとめておきます。
起動状態の確認、名前衝突していないかを確認
docker ps -a
エラーメッセージを確認
docker logs open-webui
Ollamaが稼働しているかを確認
curl -s http://127.0.0.1:11434/api/tags
ポート競合していないかを確認
sudo lsof -i :8080
Dockerの管理コマンド集
Dockerの管理コマンドをカテゴリ別にまとめてみました。
1. 基本情報の確認
| コマンド | 説明 |
|---|---|
docker ps | 稼働中コンテナ一覧(ID、名前、ポート、起動時間) |
docker ps -a | 停止中も含めた全コンテナ一覧 |
docker images | ローカルにあるイメージ一覧 |
docker volume ls | 永続化ボリューム一覧 |
docker network ls | Docker ネットワーク一覧 |
2. コンテナの操作
| コマンド | 説明 |
|---|---|
docker start open-webui | 停止中のコンテナを起動 |
docker stop open-webui | コンテナを停止 |
docker restart open-webui | 再起動 |
docker rm open-webui | コンテナ削除(ボリュームは残る) |
docker exec -it open-webui bash | コンテナ内に入って作業(bash) |
docker exec -it open-webui sh | Alpineベースならshで入る |
docker logs -f open-webui | ログをリアルタイム表示(-fで追従) |
3. イメージ管理
| コマンド | 説明 |
|---|---|
docker pull ghcr.io/open-webui/open-webui:main | 最新イメージ取得 |
docker rmi <IMAGE_ID> | イメージ削除 |
docker image prune | 未使用イメージを一括削除 |
docker system prune -a | 未使用コンテナ・イメージ・ネットワーク一括削除(慎重に) |
4. ボリューム管理(データ永続化)
| コマンド | 説明 |
|---|---|
docker volume inspect open-webui-data | ボリューム詳細情報(ホストパス確認可) |
docker run --rm -v open-webui-data:/data alpine ls /data | ボリュームの中身を確認 |
docker volume rm open-webui-data | ボリューム削除(データ消える) |
docker volume prune | 未使用ボリュームを削除 |
5. ネットワーク関連
| コマンド | 説明 |
|---|---|
docker network inspect bridge | bridgeネットワーク詳細 |
docker network inspect <NETWORK> | 任意ネットワークの詳細 |
docker run --rm --network host alpine ping -c 3 127.0.0.1 | hostネットワーク動作確認 |
6. リソース監視
| コマンド | 説明 |
|---|---|
docker stats | コンテナのCPU/メモリ/ネットワーク使用状況リアルタイム表示 |
docker inspect open-webui | コンテナの詳細情報(環境変数、マウント、ネットワーク) |


コメント