Difyは、AIアプリケーションやチャットボット、ワークフローなどを構築できるLLMアプリ開発プラットフォームです。ブラウザ上で手軽に利用できる一方で、「ローカル環境で検証したい」「社内環境で安全に動かしたい」「Dockerを使ってDifyを構築したい」と考える方もいるでしょう。
そのような場合は、Dockerを使ってDifyをローカル環境に構築する方法があります。Dockerを利用すれば、Difyの実行に必要な環境をコンテナとしてまとめて管理できるため、WindowsやMac、Linuxなど異なるOSでも環境をそろえやすくなります。
本記事では、Dockerの概要やDifyをDockerで利用するメリット、ローカル環境に構築する手順、起動後によく使うコマンド、構築できないときの対処法まで分かりやすく解説します.
目次
DifyはDockerを使ってローカル環境に構築できる
Difyは、Docker Composeを使うことでローカルPCや社内サーバー上に構築できます。Docker Composeとは、複数のコンテナをまとめて定義・起動・管理できる仕組みです。DifyはWeb画面やAPIサーバー、データベース、Redis、Nginxなど複数の要素で構成されているため、Docker Composeを使うことで必要な環境をまとめて起動できます。
クラウド版のDifyは、アカウントを作成すればすぐに利用できる点がメリットです。一方で、ローカル環境にDifyを構築すれば、自社環境で動作を検証したり、設定ファイルを確認・変更したり、外部サービスとの連携を試したりしやすくなります。
また、Dockerを使えば、Difyの実行に必要なソフトウェアやライブラリをコンテナ内にまとめられるため、PCごとの環境差によるトラブルを減らせます。開発担当者ごとにOSや設定が異なる場合でも、同じDocker構成を使うことで、近い環境を再現しやすくなるのが特徴です。
ただし、DifyをDockerでローカル環境に構築した場合でも、OpenAI APIやGemini、Claudeなど外部のLLM APIを利用するにはインターネット接続が必要です。完全なオフライン環境で利用したい場合は、OllamaなどのローカルLLMとの連携や、Dockerイメージの事前取得など、追加の準備が必要になります。
そのため、Docker版のDifyは「まずはローカルでDifyの動作を試したい」「社内環境で検証したい」「セルフホスト構成を理解したい」という方に適した利用方法です。
Dockerとは?
Dockerは、アプリケーションを動作させるための「コンテナ」と呼ばれる仮想的な環境を作成・実行・共有できるプラットフォームです。
コンテナは、アプリケーション本体とその実行に必要な設定やライブラリをひとまとめにした環境です。
通常、アプリケーションはWindowsやLinuxといったOSごとに異なる環境設定が必要ですが、Dockerのコンテナを使えば、どのOS上でも同じ環境を再現できます。
コンテナの設定はコード化されているため、他の人と共有して簡単に同じ環境を作成することが可能です。
アプリケーション開発チーム全員が同じ環境で作業できるため、パソコンのOSやバージョンによってうまく動かないといった問題がなくなります。
従来の仮想化との違い
アプリケーション開発では、テストなどに必要な環境を仮想的に作る「仮想化」という技術が使われることがあります。
Dockerのコンテナは仮想化と近い概念ですが、厳密には異なります。
Dockerのコンテナと従来の仮想化の一番の違いは、ゲストOSの有無です。
従来の仮想化では、仮想マシンごとにゲストOSをインストールし、独立したサーバーのように動作させます。
しかし、この方法ではゲストOSのインストールや、起動に時間がかかることがネックです。
一方、DockerはホストOSのカーネル(OSの基本機能を担う中核ソフトウェア)を、コンテナ間で共有する仕組みになっているため、ゲストOSをインストールする必要がありません。
そのため、従来の仮想化よりも環境構築に手間がかからないのが大きな特長です。
Dockerの利用プラン
Dockerは以前までは無料で提供されていましたが、現在は利用プランを細分化し、一定以上の規模の組織には有料での提供を行っています。
有料プランは個人開発者向けのPro、5~100名規模の組織向けのTeam、ユーザー数無制限のBusinessの3つあり、1ユーザー当たりの月額料金(年払い)は、Proが9ドル、Teamが15ドル、Businessが24ドルです。
大手企業向けのBusinessプランは、他のプランに比べて以下のような特長があります。
- ユーザー数無制限
- コンテナ分離・設定管理の強化
- VDI(デスクトップ仮想化)サポート
- ドメイン監査
- シングルサインオン
- クロスドメインID管理システム
上記の他にも、さまざまな点がアップグレードされており、大手企業での安全・快適なアプリ開発に役立つプランとなっています。
DifyをDockerで使う前に準備するもの
DifyをDockerでローカル環境に構築するには、事前にいくつかのソフトウェアや作業環境を準備しておく必要があります。
主に必要になるのは、コンテナを起動するためのDocker Desktop、Difyのソースコードを取得するためのGit、コマンドを実行するためのターミナルです。設定ファイルを編集する場合は、Visual Studio Codeなどのテキストエディタも用意しておくと作業しやすくなります。
また、Difyは複数のコンテナを同時に起動するため、ある程度のCPUやメモリも必要です。公式ドキュメントでは、Docker環境でDifyを利用する場合、macOSではDocker仮想マシンに最低2つの仮想CPUと8GiBのメモリを設定することが案内されています。Linux環境ではDocker 19.03以上、Docker Compose 1.28以上が必要です。
Docker Desktop
Docker Desktopは、WindowsやMacでDockerを利用するためのアプリケーションです。Difyをローカル環境で起動する際は、Docker Desktopを使って複数のコンテナをまとめて起動・管理します。
WindowsまたはMacを利用している場合は、Dockerの公式サイトからDocker Desktopをダウンロードし、インストールしておきましょう。インストール後は、Docker Desktopを起動した状態で作業を進めます。Docker Desktopが起動していないと、後述するdocker compose up -dなどのコマンドを実行してもエラーになる場合があります。
Windowsで利用する場合は、WSL2が有効になっている必要があります。また、DifyのソースコードやデータをWindows側のファイルシステムではなく、Linuxファイルシステム側に保存することが公式ドキュメントで推奨されています。これにより、ファイルアクセスの遅延や権限まわりのトラブルを減らしやすくなります。
Linux環境で利用する場合は、Docker DesktopではなくDocker EngineとDocker Composeをインストールして利用するのが一般的です。
Git
Gitは、ソースコードの変更履歴を管理するためのツールです。DifyをDockerで構築する際は、Gitを使ってDifyのリポジトリをGitHubからローカル環境に取得します。
Gitがインストールされているか確認したい場合は、ターミナルで以下のコマンドを実行します。
git --version
バージョン情報が表示されれば、Gitは利用できる状態です。コマンドが見つからない場合は、Gitをインストールしてから作業を進めましょう。
Difyのソースコードを取得する際は、後ほど以下のようなgit cloneコマンドを使用します。
git clone https://github.com/langgenius/dify.git
Gitを使うことで、Difyの最新版を取得したり、アップデート時にソースコードを更新したりしやすくなります。
ターミナルまたはVisual Studio Code
DifyをDockerで起動するには、ターミナルでコマンドを実行します。Macであれば「ターミナル」、Windowsであれば「PowerShell」や「Windows Terminal」、Linuxであれば各ディストリビューションのターミナルを利用できます。
主に実行するコマンドは、Difyのソースコードを取得するgit clone、Docker用のディレクトリに移動するcd、Difyを起動するdocker compose up -dなどです。
また、Visual Studio Codeを使うと、ターミナル操作とファイル編集を同じ画面で行えるため便利です。特に、Difyの設定ファイルである.envを確認・編集する場合は、Visual Studio Codeなどのエディタを使うと作業しやすくなります。
ただし、Visual Studio Codeは必須ではありません。DifyをDockerで起動するだけであれば、ターミナルと任意のテキストエディタがあれば作業できます。
必要なPCスペック・メモリ容量
Difyは、Web画面、APIサーバー、ワーカー、データベース、Redis、Nginxなど複数のコンテナを起動して動作します。そのため、軽量なツールを1つだけ動かす場合と比べると、一定のCPUやメモリが必要です。
Difyの公式GitHubでは、インストール前に満たすべき最小要件として、CPU 2コア以上、RAM 4GiB以上が案内されています。一方で、Docker Composeの公式手順では、macOSの場合、Docker仮想マシンに最低2つの仮想CPUと8GiBのメモリを設定することが案内されています。
そのため、ローカル環境で安定してDifyを動かしたい場合は、最低でも8GB以上、可能であれば16GB以上のメモリを搭載したPCを利用すると安心です。特に、Difyと同時にブラウザ、Visual Studio Code、ローカルLLM、その他の開発ツールを起動する場合は、メモリ不足によってコンテナが落ちたり、画面の動作が重くなったりすることがあります。
Docker Desktopを利用している場合は、設定画面からDockerに割り当てるCPUやメモリを確認できます。Difyの起動が遅い、コンテナが途中で停止する、localhostにアクセスできないといった場合は、Docker Desktopに割り当てているメモリが不足していないか確認しましょう。
Dockerを使ってDifyをローカル環境で利用するメリット
先述のように、Dockerを活用すれば、Difyをローカル環境で利用できます。
Difyをローカル環境で利用すると、ブラウザで利用する場合と比べて以下のようなメリットがあります。
安全な環境で開発できる
Difyをブラウザ環境で利用する場合、Difyのサーバーにアクセスする必要があります。
Difyを使ってツールを開発するに当たり、時には社外秘の情報を読み込ませる場合もあるため、社外サーバーを介して機密情報を取り扱うことに不安を感じる方も多いでしょう。
そのような場合でも、Dockerを使用してローカル環境でDifyを構築すれば、クラウド版だけに依存せず、自社環境で検証しやすくなります。
ただし、外部のLLM APIや外部ストレージと連携する場合は、入力データが外部サービスに送信される可能性があります。社内資料や機密情報を扱う場合は、利用するLLM、ネットワーク設定、アクセス権限なども含めて確認しましょう。
スピーディーに処理できる
ブラウザ版のDifyで一度に大量の処理を行おうとすると、遅延やフリーズといったトラブルが発生する場合があります。
ローカル環境で利用すれば、サーバーとのデータのやり取りに伴う遅延や不具合が発生しにくくなるため、大量の処理もスピーディーにこなせるようになります。
複数のOSで動作確認できる
Dockerは異なるOS間でも同じ開発環境を再現できます。
そのため、WindowsやMacOS、Linuxなど異なるOSを使っていても、開発途中のアプリケーションの動作確認を問題なく行うことが可能です。
ローカル環境で検証しやすい
Dockerを使ってDifyをローカル環境に構築すれば、Dify本体の管理画面や設定内容を自分のPC上で確認しながら検証できます。
ただし、OpenAI APIやGemini、Claudeなど外部のLLM APIを利用する場合は、インターネット接続が必要です。完全なオフライン環境で利用したい場合は、OllamaなどのローカルLLMとの連携や、必要なDockerイメージの事前取得などを準備する必要があります。
DifyをDockerでローカル環境に構築する手順
ここからは、DifyをDockerでローカル環境に構築する手順を紹介します。
基本的な流れは、Docker DesktopとGitを準備し、DifyのソースコードをGitHubから取得した上で、Docker Composeを使ってDifyを起動するというものです。Difyは複数のコンテナで構成されているため、Docker Composeを利用することで、Web画面、APIサーバー、データベース、Redis、Nginxなどをまとめて起動できます。
なお、Difyの公式ドキュメントでは、macOSではDocker仮想マシンに最低2つの仮想CPUと8GiBのメモリを設定すること、LinuxではDocker 19.03以上とDocker Compose 1.28以上を利用すること、WindowsではWSL2を有効にした上でLinuxファイルシステム側にデータを保存することが案内されています。
1. Docker Desktopをインストールする
まず、Docker Desktopをインストールします。Docker Desktopは、WindowsやMacでDockerを利用するためのアプリケーションです。
Dockerの公式サイトから、利用しているOSに合ったDocker Desktopをダウンロードし、画面の案内に従ってインストールします。インストールが完了したら、Docker Desktopを起動しておきましょう。
Docker Desktopが起動していない状態では、後ほど実行するdocker compose up -dなどのコマンドが正常に動作しません。コマンド実行前に、Docker Desktopが起動済みになっているか確認してください。
インストール後、ターミナルで以下のコマンドを実行すると、Dockerが使える状態か確認できます。
docker --version
Docker Composeが利用できるか確認する場合は、以下のコマンドを実行します。
docker compose version
それぞれバージョン情報が表示されれば、Dockerを利用する準備はできています。
2. Gitをインストールする
次に、Gitをインストールします。Gitは、DifyのソースコードをGitHubから取得するために使用します。
Gitがすでにインストールされているか確認するには、ターミナルで以下のコマンドを実行します。
git --version
バージョン情報が表示されれば、Gitは利用できる状態です。コマンドが見つからない場合は、Gitをインストールしてから次の手順に進みましょう。
Windowsの場合は、Git for Windowsをインストールすると、PowerShellやWindows TerminalからGitコマンドを利用できます。Macの場合は、Xcode Command Line Toolsのインストール時にGitが使えるようになる場合もあります。
3. DifyのソースコードをGitHubから取得する
Docker DesktopとGitの準備ができたら、DifyのソースコードをGitHubから取得します。
ターミナルを開き、作業用のフォルダに移動してから、以下のコマンドを実行します。
git clone https://github.com/langgenius/dify.git
コマンドを実行すると、現在のフォルダ内にdifyというフォルダが作成され、Difyのソースコードがダウンロードされます。
公式ドキュメントでは、最新リリースのタグを指定して取得する方法も案内されています。安定版を利用したい場合は、公式ドキュメントのコマンドに沿って、最新リリースを指定してクローンするとよいでしょう。
4. dockerディレクトリに移動する
Difyのソースコードを取得したら、Docker用の設定ファイルが置かれているディレクトリに移動します。
cd dify/docker
DifyのDocker Compose関連ファイルは、difyフォルダ内のdockerディレクトリに格納されています。そのため、DifyをDockerで起動する際は、このdockerディレクトリ内で作業を行います。
現在のディレクトリを確認したい場合は、MacやLinuxでは以下のコマンドを実行します。
pwd
WindowsのPowerShellでは、以下のコマンドでも確認できます。
Get-Location
パスの末尾がdify/dockerになっていれば、正しい場所に移動できています。
5. .env.exampleを.envにコピーする
次に、環境設定ファイルを作成します。Difyでは、Dockerで起動する際の各種設定を.envファイルで管理します。
初期状態ではサンプルファイルとして.env.exampleが用意されているため、以下のコマンドで.envとしてコピーします。
cp .env.example .env
WindowsのPowerShellを利用している場合は、以下のコマンドでもコピーできます。
Copy-Item .env.example .env
.envファイルには、利用するポート番号、データベース、Redis、ベクトルデータベース、各種URLなどの設定が含まれます。まずローカル環境でDifyを起動するだけであれば、基本的には初期設定のまま進められます。
ただし、すでに他のアプリケーションが80番ポートや443番ポートを使用している場合は、後ほどDifyにアクセスできない原因になることがあります。その場合は、.envやDocker Composeの設定でポート番号を調整する必要があります。
6. docker compose up -dでDifyを起動する
.envファイルを作成したら、Docker ComposeでDifyを起動します。
docker compose up -d
docker compose upは、Docker Composeの設定に基づいて複数のコンテナを起動するコマンドです。末尾の-dは、コンテナをバックグラウンドで起動するためのオプションです。
初回起動時は、必要なDockerイメージのダウンロードやコンテナ作成が行われるため、完了まで数分かかる場合があります。途中で止まったように見えても、イメージの取得に時間がかかっているだけの場合があるため、しばらく待ってから状態を確認しましょう。
なお、DifyのDocker用READMEでは、dockerディレクトリ内で./dify-compose up -dを実行する方法も案内されています。Windows PowerShellの場合は、.\dify-compose.ps1 up -dを利用する方法があります。環境やDifyのバージョンによって推奨コマンドが異なる場合があるため、実行前に公式READMEも確認しておくと安心です。
7. docker compose psで起動状態を確認する
Difyを起動したら、コンテナが正常に動いているか確認します。
docker compose ps
このコマンドを実行すると、Difyに関連するコンテナの一覧とステータスが表示されます。ステータスがUpやhealthyになっていれば、コンテナは正常に起動しています。
一部のコンテナがExitedになっている場合や、起動と停止を繰り返している場合は、設定エラーやメモリ不足、ポート競合などが発生している可能性があります。その場合は、後述するログ確認コマンドを使って原因を調べましょう。
8. localhost/installにアクセスする
コンテナが起動していることを確認できたら、ブラウザで以下のURLにアクセスします。
http://localhost/install
Difyの初期設定画面が表示されれば、Dockerによるローカル構築は完了です。画面の案内に従って管理者アカウントを作成し、Difyの利用を開始しましょう。
もしlocalhost/installにアクセスしても画面が表示されない場合は、Difyのコンテナが正常に起動していない、ポートが競合している、Docker Desktopが停止している、ブラウザのキャッシュが影響しているなどの原因が考えられます。まずはdocker compose psで状態を確認し、必要に応じてdocker compose logsでエラー内容を確認してください。
DifyをDockerで起動した後によく使う基本コマンド
DifyをDockerで起動した後は、停止、再起動、ログ確認、状態確認などの基本コマンドを覚えておくと便利です。
以下のコマンドは、基本的にdify/dockerディレクトリ内で実行します。別のディレクトリで実行すると、Docker Composeの設定ファイルが見つからずエラーになる場合があります。
Difyを停止するコマンド
Difyを停止する場合は、以下のコマンドを実行します。
docker compose down
docker compose downを実行すると、Difyに関連するコンテナが停止し、作成されたネットワークも削除されます。ただし、通常はDockerボリュームに保存されたデータは削除されません。
一時的に作業を止めたい場合や、PCを再起動する前にDifyを停止したい場合に使用します。
Difyを再起動するコマンド
Difyを再起動する場合は、以下のコマンドを実行します。
docker compose restart
.envファイルの設定を変更した場合や、一部のコンテナの動作が不安定な場合は、再起動によって改善することがあります。
ただし、Docker Composeの設定変更やイメージの更新を反映したい場合は、単純なrestartではなく、以下のように一度停止してから再度起動する方法もあります。
docker compose down
docker compose up -d
Difyのログを確認するコマンド
Difyが正常に起動しない場合や、画面にアクセスできない場合は、ログを確認します。
docker compose logs
リアルタイムでログを追いかけたい場合は、以下のコマンドを使用します。
docker compose logs -f
特定のサービスだけログを確認したい場合は、サービス名を指定します。例えば、API関連のログを確認したい場合は、以下のように実行します。
docker compose logs -f api
ログには、ポート競合、データベース接続エラー、メモリ不足、環境変数の設定ミスなど、トラブルの原因を特定するための情報が出力されます。
Difyのコンテナ状態を確認するコマンド
Difyに関連するコンテナの状態を確認するには、以下のコマンドを実行します。
docker compose ps
各コンテナの状態がUpやhealthyになっているか確認しましょう。ExitedやRestartingになっているコンテナがある場合は、そのコンテナで何らかの問題が発生している可能性があります。
Docker全体で起動しているコンテナを確認したい場合は、以下のコマンドも利用できます。
docker ps
停止中のコンテナも含めて確認したい場合は、以下のコマンドを実行します。
docker ps -a
Difyのコンテナを削除するコマンド
Difyのコンテナを停止して削除したい場合は、以下のコマンドを実行します。
docker compose down
通常の停止・削除であれば、このコマンドで十分です。
ただし、ボリュームも含めて削除する場合は注意が必要です。以下のコマンドを実行すると、コンテナだけでなく、Dockerボリュームに保存されたデータも削除される可能性があります。
docker compose down -v
-vオプションを付けると、データベースやアップロードファイルなど、Difyの利用データが消える可能性があります。初期化したい場合を除き、本番環境や検証済みの環境では安易に実行しないようにしましょう。
DifyをDockerで構築できないときの原因と対処法
DifyをDockerで構築する際、環境によっては起動できない、画面にアクセスできない、コマンドが認識されないといったトラブルが発生することがあります。
ここでは、DifyをDockerで構築できないときによくある原因と対処法を紹介します。
Docker Desktopが起動していない
もっとも基本的な原因として、Docker Desktopが起動していないケースがあります。
Docker Desktopが停止している状態でdocker compose up -dを実行すると、Dockerデーモンに接続できないという内容のエラーが表示されることがあります。
この場合は、まずDocker Desktopを起動し、ステータスが起動済みになるまで待ちましょう。その後、ターミナルで以下のコマンドを実行して、Dockerが利用できるか確認します。
docker info
Dockerの情報が表示されれば、Docker Desktopは正常に動作しています。
docker composeコマンドが使えない
docker composeコマンドが使えない場合は、Docker Composeがインストールされていない、または古い形式のコマンドを使う必要がある可能性があります。
まず、以下のコマンドでDocker Composeのバージョンを確認します。
docker compose version
バージョン情報が表示されれば、現在のDocker Composeコマンドを利用できます。
一方で、環境によっては以下のようにハイフン付きの旧形式コマンドを使う場合があります。
docker-compose version
ただし、現在はdocker compose形式が主流です。Docker Desktopを最新版に更新することで、docker composeコマンドが利用できるようになる場合があります。
ポート80・443がすでに使われている
Difyにアクセスできない場合、80番ポートや443番ポートがすでに他のアプリケーションで使われている可能性があります。
例えば、ローカル環境で別のWebサーバー、Nginx、Apache、他のDockerコンテナなどが起動していると、DifyのNginxコンテナが同じポートを使用できず、起動に失敗することがあります。
ポートの競合が疑われる場合は、まず以下のコマンドでコンテナの状態を確認します。
docker compose ps
さらにログを確認し、ポートに関するエラーが出ていないか確認します。
docker compose logs nginx
ポート競合が原因の場合は、すでに起動している他のアプリケーションを停止するか、Dify側のポート設定を変更します。ポート番号を変更した場合は、アクセスするURLも変更後のポートに合わせる必要があります。
メモリ不足でコンテナが落ちる
Difyは複数のコンテナを同時に起動するため、PCのメモリが不足していると、コンテナが起動しなかったり、起動後に停止したりすることがあります。
コンテナがExitedやRestartingになっている場合は、以下のコマンドで状態を確認します。
docker compose ps
ログを確認する場合は、以下のコマンドを実行します。
docker compose logs
メモリ不足が疑われる場合は、Docker Desktopの設定画面から、Dockerに割り当てるメモリ量を増やしてください。macOSでは、Dify公式ドキュメントにおいてDocker仮想マシンに最低2つの仮想CPUと8GiBのメモリを設定することが案内されています。
また、ブラウザ、Visual Studio Code、ローカルLLM、他のDockerコンテナなどを同時に起動している場合は、一度不要なアプリケーションを終了してからDifyを再起動してみましょう。
WindowsでWSL2関連のエラーが出る
WindowsでDocker Desktopを利用する場合は、WSL2が有効になっている必要があります。
WSL2が無効になっている、またはDocker DesktopのWSL連携が正しく設定されていない場合、Dockerが正常に動作しないことがあります。
WindowsでDifyを構築する場合は、以下を確認しましょう。
- WSL2が有効になっているか
- Docker Desktopの設定でWSL連携が有効になっているか
- 利用しているLinuxディストリビューションがDocker Desktopと連携しているか
- DifyのソースコードをWindows側ではなくLinuxファイルシステム側に保存しているか
Dify公式ドキュメントでは、Windows環境でLinuxコンテナにバインドされるソースコードやデータを、WindowsファイルシステムではなくLinuxファイルシステムに保存することが推奨されています。Windows側のフォルダに置いたまま作業すると、ファイルアクセスが遅くなったり、権限まわりの問題が発生したりする場合があります。
localhost/installにアクセスできない
docker compose up -dを実行したにもかかわらず、http://localhost/installにアクセスできない場合は、複数の原因が考えられます。
まず、以下のコマンドでDifyのコンテナが起動しているか確認します。
docker compose ps
コンテナが起動していない場合は、ログを確認します。
docker compose logs
特に、Nginx、API、Web関連のコンテナが正常に起動しているか確認しましょう。
コンテナが起動しているにもかかわらず画面が表示されない場合は、次の点を確認してください。
- ブラウザでアクセスしているURLが
http://localhost/installになっているか - ポート80が他のアプリケーションと競合していないか
- Docker Desktopが正常に起動しているか
- 初回起動直後で、まだコンテナの準備が完了していない状態ではないか
- ブラウザのキャッシュやプロキシ設定が影響していないか
初回起動時は、すべてのコンテナが利用可能になるまで時間がかかる場合があります。数分待ってから再度アクセスし、それでも表示されない場合はdocker compose logsでエラー内容を確認しましょう。
DifyのDocker構築に関するよくある質問
最後に、DifyをDockerで構築する際によくある質問を紹介します。Difyをローカル環境で使う前に、Dockerの必要性や料金、対応OS、よくあるトラブルについて確認しておきましょう。
DifyはDockerなしでも使える?
Difyは、Dockerなしでも利用できます。もっとも手軽なのは、クラウド版のDifyをブラウザから利用する方法です。アカウントを作成すれば、ローカル環境にDockerをインストールしなくても、Difyの管理画面からAIアプリケーションやチャットボット、ワークフローなどを作成できます。
一方で、DifyをローカルPCや社内サーバーに構築したい場合は、Dockerを使う方法が一般的です。Docker Composeを利用すれば、Difyの動作に必要なWeb画面、APIサーバー、データベース、Redis、Nginxなどをまとめて起動できます。
そのため、すぐにDifyを試したい場合はクラウド版、ローカル環境で検証したい場合やセルフホストしたい場合はDocker版を選ぶとよいでしょう。
DifyをDockerで使うのは無料?
DifyのCommunity版は、無料で利用できます。そのため、ローカル環境にDockerでDifyを構築し、検証用途で使うこと自体は無料で始められます。
ただし、利用環境によっては別途費用が発生する場合があります。例えば、OpenAI APIやGemini、Claudeなど外部のLLM APIを利用する場合は、各サービスのAPI利用料が必要です。また、クラウドサーバー上にDifyを構築する場合は、サーバー費用も発生します。
さらに、Docker Desktopには利用条件があります。個人利用や小規模利用では無料で使える場合がありますが、一定規模以上の企業で利用する場合は有料プランの対象になることがあります。業務で利用する場合は、Docker Desktopのライセンス条件も事前に確認しておきましょう。
DifyはWindowsでもDocker構築できる?
Difyは、WindowsでもDockerを使って構築できます。Windowsで利用する場合は、Docker Desktopをインストールし、WSL2を有効にした上で作業を進めます。
Windows環境では、DifyのソースコードやDockerで利用するデータを、Windows側のファイルシステムではなく、WSL2のLinuxファイルシステム側に保存することが推奨されます。Windows側のフォルダに配置したまま利用すると、ファイルアクセスが遅くなったり、権限まわりのトラブルが発生したりする場合があります。
また、PowerShellを使う場合、一部のコマンドがMacやLinuxと異なることがあります。例えば、.env.exampleを.envにコピーする場合、MacやLinuxではcp .env.example .envを使いますが、PowerShellではCopy-Item .env.example .envを使うこともできます。
DifyはMacでもDocker構築できる?
Difyは、MacでもDockerを使って構築できます。Macで構築する場合は、Docker Desktop for Macをインストールし、ターミナルからDifyのソースコード取得やDocker Composeの起動コマンドを実行します。
Macの場合、Docker Desktopの設定でDockerに割り当てるCPUやメモリを確認しておくことが重要です。Difyは複数のコンテナを同時に起動するため、メモリ割り当てが少ないと起動が遅くなったり、コンテナが停止したりすることがあります。
特に、ブラウザ、Visual Studio Code、他のDockerコンテナ、ローカルLLMなどを同時に動かす場合は、メモリに余裕のある環境で作業すると安心です。
docker compose up -dとは?
docker compose up -dは、Docker Composeの設定ファイルに基づいて、複数のコンテナをまとめて起動するコマンドです。
Difyは、Web画面、APIサーバー、ワーカー、データベース、Redis、Nginxなど複数のサービスで構成されています。これらを一つずつ手動で起動するのは手間がかかるため、Docker Composeを使ってまとめて管理します。
upはコンテナを作成・起動する命令で、-dはバックグラウンドで起動するためのオプションです。つまり、docker compose up -dを実行すると、Difyに必要なコンテナをバックグラウンドでまとめて起動できます。
起動後は、以下のコマンドでコンテナの状態を確認できます。
docker compose ps
停止する場合は、以下のコマンドを実行します。
docker compose down
localhost/installにアクセスできない場合は?
http://localhost/installにアクセスできない場合は、まずDifyのコンテナが正常に起動しているか確認しましょう。
docker compose ps
コンテナの状態がUpやhealthyになっていない場合は、起動中に何らかのエラーが発生している可能性があります。詳しい原因を確認するには、以下のコマンドでログを確認します。
docker compose logs
よくある原因としては、Docker Desktopが起動していない、初回起動がまだ完了していない、80番ポートや443番ポートが他のアプリケーションで使われている、メモリ不足でコンテナが落ちている、WSL2まわりで問題が発生している、などが挙げられます。
初回起動時は、Dockerイメージの取得や複数コンテナの準備に時間がかかることがあります。docker compose up -dを実行した直後に画面が表示されない場合は、数分待ってから再度アクセスしてみましょう。
Difyを完全オフラインで使える?
DifyをDockerでローカル環境に構築すれば、Dify本体の管理画面や一部の設定作業はローカル環境で行えます。ただし、完全にオフラインで利用できるかどうかは、利用するLLMや外部サービスの構成によって異なります。
OpenAI API、Gemini、Claudeなど外部のLLM APIを利用する場合は、インターネット接続が必要です。また、初回構築時にはDockerイメージやDifyのソースコードを取得するため、基本的にはインターネット接続が必要になります。
完全なオフライン環境でDifyを使いたい場合は、OllamaなどのローカルLLMを用意し、必要なDockerイメージやモデルファイルを事前に取得しておく必要があります。社内の閉域環境で利用する場合は、ネットワーク設定、モデルの配置、Dockerイメージの持ち込み方法、セキュリティ要件などを事前に確認しておきましょう。
そのため、Docker版のDifyは「ローカル環境で検証しやすい」一方で、外部LLM APIを使う場合はオンライン接続が必要になる点に注意が必要です。
まとめ:DifyをDockerで構築してローカル環境で活用しよう
Difyは、Dockerを使うことでローカルPCや社内サーバー上に構築できます。Docker Composeを利用すれば、Difyの動作に必要なWeb画面、APIサーバー、データベース、Redis、Nginxなどをまとめて起動できるため、ローカル環境での検証やセルフホスト構成の確認に役立ちます。
DifyをDockerで構築する際は、事前にDocker DesktopやGit、ターミナル環境を準備し、DifyのソースコードをGitHubから取得した上で、.envファイルを作成し、docker compose up -dで起動します。起動後は、docker compose psでコンテナの状態を確認し、ブラウザからhttp://localhost/installにアクセスできれば構築は完了です。
一方で、Docker Desktopが起動していない、ポート80・443が他のアプリケーションで使われている、メモリが不足している、WindowsでWSL2の設定が不十分になっているといった場合は、Difyが正常に起動しないことがあります。トラブルが起きた場合は、docker compose psやdocker compose logsを使って原因を確認しましょう。
Docker版のDifyは、ローカル環境でDifyの動作を試したい方や、社内環境で検証したい方、クラウド版ではなくセルフホストで運用したい方に適しています。ただし、OpenAI APIやGemini、Claudeなど外部のLLM APIを利用する場合はインターネット接続が必要です。完全なオフライン環境で使いたい場合は、OllamaなどのローカルLLMとの連携やDockerイメージの事前取得も検討しましょう。
まずはDockerでDifyをローカル環境に構築し、基本的な起動・停止・ログ確認の操作に慣れることで、Difyをより柔軟に活用しやすくなります。
山本 豊
Difyライセンス・支援サービスの営業責任者。
連絡先:agent@tdse.jp
まずはお気軽にご相談ください
Dify以外に、Copilot Studio・Power Automate・Azure
OpenAI・Langchain等の技術支援も可能です。
生成AI・AIエージェントでお悩み事がありましたら、ご相談ください。