FrigateとOllamaを同じZimaOSホスト上の別々のDockerコンテナで実行している場合、Frigate内のlocalhost:11434はOllamaではなく、Frigateコンテナ自身を指します。両方のサービスを共有Dockerネットワークに接続してOllamaのサービス名を使用するか、FrigateからアクセスできるホストアドレスにOllamaのポートを公開してください。
元のスレッドでは、検証済みの最終構成には至りませんでした。ただし、正しい診断手順は確立されています。まずFrigateコンテナからネットワークに到達できることを確認し、その後Frigateのgenai:設定を確認します。現在のFrigateドキュメントでは、画像やイベントの説明にビジョン対応モデルも必要です。
コンテナ間でlocalhostが機能しない理由
通常、Dockerコンテナごとに独自のネットワーク名前空間があります。Frigate内で次のアドレスを指定すると:
http://localhost:11434
「Frigateコンテナ内のポート11434」を意味します。ZimaOSホストを意味するわけではなく、Ollamaコンテナに自動的に解決されることもありません。
推奨構成:共有Dockerネットワーク
FrigateとOllamaを同じユーザー定義Dockerネットワークに接続し、次のような安定したサービス名またはコンテナ名を使用します:
genai:
provider: ollama
base_url: http://ollama:11434
model: qwen3-vl:4b
現在のFrigate生成AIガイドでは、Ollamaプロバイダーについて説明しており、GenAIによる説明には適切なビジョンモデルが必要です。
ステップ1:ZimaOSホストからコンテナとネットワークを確認する
ZimaOSホストのターミナルから実行してください。Frigateの内部から実行してはいけません。
docker ps --format 'table {.Names} {.Image} {.Networks}' | grep -Ei 'NAMES|frigate|ollama'
元のユーザーは誤ってFrigateコンテナ内でDockerコマンドを実行し、docker: not foundというエラーを受け取りました。これは想定された動作です。通常、コンテナにはホストのDocker CLIが含まれておらず、ホストのDockerを操作することもできません。
ステップ2:Frigate内部からOllamaをテストする
コンテナ名とネットワークが分かったら、実際のHTTP経路をテストします。ホストから次を実行してください:
docker exec -it frigate sh
wget -qO- http://ollama:11434/api/tags
レスポンスにOllamaのモデル一覧が表示されれば、ネットワークは機能しています。ollamaを解決できない場合は、コンテナが同じネットワークを共有していない可能性があります。名前解決はできても接続が拒否される場合は、Ollamaの待ち受け設定、バインド設定、ポートの状態を確認してください。
代替方法:ZimaOSホストのIPアドレスを使用する
Ollamaのポート11434をホストに公開している場合、Frigateでは次のようなLANから到達可能なホストアドレスを使用できます:
base_url: http://192.168.1.20:11434
この方法は簡単ですが、Dockerのサービスディスカバリーを使わず、ホスト経由でトラフィックをルーティングします。OllamaがFrigateコンテナから到達可能なインターフェースで実際に待ち受けていることを確認してください。
ビジョン対応のOllamaモデルを使用する
ネットワーク接続だけでは不十分です。Frigateの現在のGenAI機能は視覚的なコンテキストを送信するため、設定するモデルがビジョンに対応している必要があります。テキスト専用のOllamaモデルはAPIテストには応答できますが、カメラ映像のイベント説明には適していない場合があります。
どこでもhost.docker.internalを使用しない
host.docker.internalはDocker Desktopでは便利ですが、すべてのLinux Dockerホストで同じように動作するとは限りません。ZimaOSでは、共有ユーザー定義ネットワークとサービス名を使用する方が一般的に移植性に優れています。
ネットワークが機能した後にFrigateの設定を確認する
/api/tagsへのアクセスが成功してから、YAMLのインデント、プロバイダー名、モデル名、GenAI機能の設定を確認してください。Frigateを再起動し、プロバイダーの初期化に関するログを確認します。
Dockerネットワークガイドでは、コンテナネットワークの基本的な仕組みを詳しく説明しています。
よくある質問
Frigateからlocalhost:11434に接続できないのはなぜですか?
Frigate内のlocalhostはOllamaコンテナではなく、Frigateコンテナ自身を指すためです。
OllamaのURLとして何を使うのが最適ですか?
共有Dockerネットワーク上では、http://ollama:11434のようにOllamaのサービス名またはコンテナ名を使用します。
docker execでdockerが見つからないと表示されるのはなぜですか?
コンテナ内でDocker CLIを実行している可能性があります。Dockerの管理コマンドはZimaOSホストのターミナルから実行してください。
どのOllamaモデルでもFrigate GenAIで使えますか?
いいえ。現在のFrigateドキュメントによると、GenAIワークフローにはビジョン対応モデルが必要です。
