生成AIアプリケーション開発プラットフォーム「Dify」は、クラウド版だけでなく、Dockerを使用してローカル環境に構築することが可能です。
セキュリティポリシーによりクラウド利用が制限されている場合や、ローカルLLMと連携させたい場合に、このセルフホスト版が有効です。
本記事では、DifyをDocker環境(ローカル)に構築する手順を解説します。
公式推奨のDocker Composeを用いた標準的な構築フローに沿って、コマンド操作から初期設定、エラー時の対処法までを網羅しました。
手順通りに進めることで、最短かつエラーなくDifyの環境構築を完了させることができます。
AIエージェント・AIシステム開発ならKAGEMUSHA!
株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。
社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。
導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

Dify(Docker版)構築に必要な前提条件・推奨環境
Difyをスムーズに動作させるためには、PCのマシンスペックと事前のツール準備が重要です。
構築を始める前に以下の環境を確認してください。
推奨システム要件(CPU・メモリ設定)
Difyは複数のコンテナ(Webサーバー、APIサーバー、データベース、Redisなど)を同時に稼働させるため、十分なリソースが必要です。
公式推奨スペック
- CPU: 2 vCPU 以上
- メモリ(RAM): 8GB 以上
特に重要なのがDockerへのメモリ割り当てです。
PC自体のメモリが十分でも、Docker Desktop側の設定でリソース制限がかかっていると、インストール中や起動後にコンテナが停止する原因になります。
Docker Desktopの設定画面で、メモリ割り当てが4GB以上になっているか必ず確認してください。
設定確認手順(Docker Desktopの場合)
- Docker Desktopの設定(歯車アイコン)を開く
- 「Resources」タブを選択する
- 「Memory」のスライダーを確認し、最低でも 4GB〜6GB以上(推奨は8GB)が割り当てられているか確認する
- 設定を変更した場合は「Apply & restart」をクリックする
必須ツールの準備(Docker・Git)
構築には「Docker」と「Git」を使用します。
以下のコマンドをターミナル(Windowsの場合はPowerShellやコマンドプロンプト)で実行し、インストール済みであることを確認してください。
docker --version
docker compose version
git --version
- Docker: Docker Desktop(Windows/Mac)またはDocker Engine(Linux)が起動している必要があります。
- Docker Compose: V2系の利用が推奨されます。
- Git: ソースコードを取得するために必要です。
【5ステップ】DifyをDocker Composeで構築・起動する手順
ここからは実際の構築作業に入ります。コマンドを順に実行してください。
Step1: GitHubからDifyのソースコードを取得する
まず、Difyの公式リポジトリからソースコードをローカル環境にダウンロード(クローン)します。
任意の作業用ディレクトリで以下のコマンドを実行してください。
git clone https://github.com/langgenius/dify.git
実行後、カレントディレクトリに dify というフォルダが作成されます。
Step2: Dockerディレクトリへの移動と環境変数の設定
DifyのDocker構築用ファイルは、プロジェクトルートではなく dockerサブディレクトリ内 に格納されています。
ディレクトリ移動を忘れると構築に失敗するため、必ず移動してください。
1. ディレクトリを移動する
cd dify/docker
2. 環境変数ファイルを作成する
設定のベースとなる .env.example ファイルをコピーして、実設定ファイル .env を作成します。
cp .env.example .env
※Windowsのコマンドプロンプトを使用している場合は copy .env.example .env と入力してください。
この .env ファイルには、ポート番号やデータベースの接続情報などが記載されています。標準構成で動かす場合は、この段階で内容を編集する必要はありません。
Step3: Docker Composeでコンテナを起動する
準備が整ったら、コンテナを起動します。以下のコマンドを実行してください。
docker compose up -d
up: コンテナを作成・起動する-d: バックグラウンドで実行する(デタッチモード)
注意点
初回起動時は、PostgreSQLやRedis、Dify本体などのDockerイメージをダウンロードするため、回線速度やマシンスペックによっては 5分〜10分程度 時間がかかります。
すべてのコンテナが Running または Started になるまで待機してください。
Step4: ブラウザでアクセスし初期設定を行う
コンテナの起動が完了したら、ブラウザを開き以下のURLにアクセスします。
- URL:
http://localhost/install
正常に起動していれば、Difyの初期セットアップ画面(管理者アカウント作成画面)が表示されます。
以下の情報を入力してアカウントを作成してください。
- メールアドレス
- パスワード
- 名前(ユーザー名)
Step5: 正常動作の確認
アカウント作成後、自動的にログインされ「Dify Studio(ダッシュボード)」が表示されます。
- 「アプリを作成する」ボタンが表示されている
- メニューの動作に遅延がない
これらが確認できれば、環境構築は完了です。
Docker版Difyを最新バージョンにアップデートする方法
Difyは頻繁にアップデートが行われています。最新機能を利用するために、定期的な更新が必要です。
ソースコードの更新とコンテナ再構築の手順
アップデートは「ソースコードの更新」と「コンテナの再ビルド」の2段階で行います。
dify/docker ディレクトリにいる状態で、以下の順にコマンドを実行してください。
1. ソースコードを最新化する
# 一度親ディレクトリ(difyルート)に戻るか、gitコマンドでpullを実行
git pull origin main
2. コンテナを停止・削除する
docker compose down
3. 最新のイメージを取得して再起動する
docker compose pull
docker compose up -d
これにより、最新のコードとDockerイメージが適用された状態でDifyが再起動します。
更新時にデータが消えないための注意点
Docker版Difyでは、作成したアプリやナレッジベースのデータは「Docker Volume」という仕組みでコンテナとは別に保存されています。
そのため、docker compose down を実行してもデータは消えません。
ただし、以下の点に注意してください。
- .envファイルの扱い:
.envファイルにはカスタマイズ設定が含まれる場合があります。git pullで競合が発生しないよう管理し、誤って削除や上書きをしないようにしてください。 - Volumeの削除禁止:
docker compose down -vのように -v オプション を付けると、ボリューム(データ)まで削除されてしまうため、絶対に使用しないでください。
データを守るため、コマンド実行時は「-v」オプションを付けないよう細心の注意を払ってください。
起動しない・エラーが出る場合のトラブルシューティング
構築中に発生しやすいトラブルとその対処法を解説します。
コンテナが起動しない・途中で止まる場合
原因1:メモリ不足
コンテナの一部(特に db や worker)が起動直後に落ちる場合、Dockerへのメモリ割り当て不足が考えられます。
前述の「推奨システム要件」を見直し、メモリ割り当てを増やしてください。
原因2:ポートの競合
Difyは標準でポート 80(Web)、5432(DB)などを使用します。
すでにPC内でWebサーバーやPostgreSQLが動いている場合、ポートが衝突して起動できません。
- 対策: 競合している他のアプリを停止するか、
.envファイル内のポート設定(例:NGINX_PORT)を変更してください。
インストール画面(/install)が表示されない場合
ブラウザでアクセスしても接続できない場合、コンテナの起動処理がまだ完了していない可能性があります。
以下のコマンドでログを確認してください。
docker compose logs -f
ログが流れ続けている間は起動処理中です。「Listening on…」や「Ready for connections」といったメッセージが表示され、ログの動きが落ち着くまで待機してから再度アクセスしてください。
「502 Bad Gateway」等のエラーが出る場合
Nginx(Webサーバー)は起動しているが、バックエンドのAPIサーバーが応答していない状態です。
docker compose psで全てのコンテナがUp状態か確認する。apiやworkerコンテナがRestartingを繰り返している場合は、エラーログを確認して原因(DB接続エラーなど)を特定する。- 一度
docker compose restartを実行して解消するか試す。
【補足】Dify運用のための基礎設定・カスタマイズ
ローカル環境ならではの活用設定について補足します。
ローカルLLM(Ollama等)と連携するためのネットワーク設定
Docker内のDifyから、ホストPC上で動作しているローカルLLM(OllamaやLM Studioなど)に接続する場合、localhost や 127.0.0.1 は使用できません(コンテナ自身を指してしまうため)。
代わりに、Dockerが提供する特別なホスト名を使用します。
- 接続先URLの指定:
http://host.docker.internal:11434
Difyのモデルプロバイダー設定画面で、Ollama等のベースURLに上記を入力することで、コンテナ内からホスト側のサービスへ通信が可能になります。
ポート番号や環境変数を変更したい場合
Difyの動作設定は dify/docker/.env ファイルで管理されています。
- ポート変更: Webアクセスのポートを80番以外にしたい場合は、
NGINX_PORTやEXPOSE_NGINX_PORTなどの値を変更します。 - ファイルアップロード制限: アップロードサイズの上限を変更したい場合は、
NGINX_CLIENT_MAX_BODY_SIZEなどを調整します。
変更後は必ず docker compose up -d を実行して設定を反映させてください。
まとめ
DifyをDockerでローカル環境に構築する手順を解説しました。
- 前提: Docker Desktopのメモリ設定(4GB以上推奨)を確認する。
- 構築:
git clone後、必ずdify/dockerディレクトリに移動してdocker compose up -dを実行する。 - 確認:
http://localhost/installから初期設定を行う。 - 運用: アップデート時は
git pullとdocker compose pullを併用し、データ永続化の仕組みを理解しておく。
この手順に沿って環境を構築することで、セキュアかつ自由にカスタマイズ可能なDify環境を手に入れることができます。
まずはローカル環境で動作を確認し、アプリ作成やLLM連携を試してみてください。
AIエージェント・AIシステム開発ならKAGEMUSHA!
株式会社KAGEMUSHAが提供する自律型AIエージェントは、定型業務の自動化から複雑なタスク進行まで、一連の業務フローをAIが主体的に遂行します。
社内データを統合した高い業務理解度と、現場オペレーションに合わせた柔軟なカスタマイズが強みです。
導入直後から成果が見える運用設計も特徴で、「何から自動化できるのか」を資料で詳しく解説しています。こちらのバナーから無料でダウンロードしてください。

