この記事では Docker 歌で応える Docker Compose オープンソースLLMアプリケーション開発プラットフォームの導入、更新、移行 Dify (v0.6.14).内容は、迅速なデプロイからデータのバックアップ、ソースコードからのイメージの構築まで、高度な操作をカバーしており、開発者やO&M担当者にわかりやすく実用的な操作ガイドを提供することを目的としています。
Docker ComposeによるDifyの迅速なデプロイメント
ほとんどのユーザーにとって、公式に提供されている Docker Compose ドキュメントの配備 Dify 最も手っ取り早く、最もお勧めの方法だ。
ステップ 1: Dify 配置ファイルの入手
まず Dify の公式リポジトリを取得する。 docker 配備カタログ。
ステップ2:環境変数の設定
Dify すべてのコンフィギュレーションは環境変数で管理される。デプロイメントの前に、コンフィギュレーション・テンプレート・ファイル .env.example リプリケート .env ドキュメントを作成し、実際のニーズに合わせて修正する。
# 进入 docker 部署目录
cd dify/docker
# 复制环境变量配置文件
cp .env.example .env
その後、テキストエディタで .env ファイルのコメントに従ってデータベース・パスワードを変更してください、SECRET_KEY といった主要なコンフィギュレーションがある。
ステップ3:サービスの開始
設定が完了したら、以下のコマンドを実行してバックグラウンドで起動する。 Dify すべてのサービスの
docker-compose up -d
このコマンドは自動的に必要な Docker イメージを作成し、すべてのコンテナを順番に起動する。
Difyサービスの更新
(落とす Dify 新バージョンのリリース時には、以下の手順でセキュリティアップデートを行うことができます。
- 古い容器を止めて取り除く:
cd dify/docker docker-compose down - バックアップデータ(重要):
アップデートを行う前にバックアップを取ることを強くお勧めします。dockerのカタログに掲載されている。volumesサブディレクトリ。これがデータのセキュリティを確保する鍵である。 - ドキュメントの新しいバージョンを取得する:
最新バージョンのDifyソースコードでは、新しいdockerカタログは古いものに取って代わる。 - 新しいバージョンの画像をインポートする:
オフライン環境の場合は、事前に新しいバージョンの画像ファイルをインポートする必要があります。 - 設定ファイルの更新:
新旧比較.envファイルを使用して、カスタム設定を新しい.envドキュメンテーション - 新バージョンのサービス開始:
docker-compose up -d
データ移行とバックアップ
データ移行は、運用・保守の現場では一般的な要件である。Dify データの永続化は、ローカル・ディレクトリ・マッピングと Docker データボリュームに名前を付け、異なる方法で移行する。
ローカルにマッピングされたボリュームディレクトリの移行
Dify な docker-compose.yaml ドキュメントによると、「ローカル・ディレクトリ・マッピング」によってデータを永続化するサービスもある。これは、コンテナ内のディレクトリがホストの ./volumes カタログ

この方法での移行は非常に簡単で、基本的にはファイルのコピーである。
- Difyサービス停止
データの書き込み競合を防ぐため、ファイルを操作する前にすべてのコンテナを停止しなければならない。docker-compose down - パック・ボリューム・カタログ
そうしれいかんvolumesディレクトリがzipファイルにまとめられている。tar -czvf dify-volumes.tar.gz ./volumes - 新しいサーバーで解凍する
新しいサーバーの目的の場所にzipを転送したら、解凍する。tar -xzvf dify-volumes.tar.gz
Docker名前付きデータボリュームの移行
に関して PostgreSQL などの主要サービスを提供する。Dify 採用 Docker データは「名前付きデータボリューム」に永続化される。このようなボリュームは以下から構成される。 Docker 物理ファイルが /var/lib/docker/volumes/ ディレクトリに直接コピーするのは比較的面倒で、パーミッションの問題があるかもしれない。

には oradata 歌で応える dify_es01_data この2つのデータボリュームを例として、推奨される移行方法を以下に示す。
指示で展開された場合 docker-compose -p dify プロジェクト名を指定する。Docker ボリューム名にはプレフィックスが自動的に追加されます。 dify_oradata.
方法1:一時コンテナを使ったバックアップと復元(推奨)
この方法には root 許可され、ホスト上のボリュームの特定の物理パスを気にする必要はなく、安全で標準化されたプラクティスである。
- バックアップ・データ・ボリューム
一時的なalpineコンテナを作成し、バックアップするデータボリュームとローカルバックアップディレクトリの両方をマウントし、コンテナ内でpackコマンドを実行する。# 确保当前目录下有 backup 子目录 mkdir -p backup # 备份 oradata 数据卷 docker run --rm -v oradata:/source -v $(pwd)/backup:/backup alpine sh -c "cd /source && tar czf /backup/oradata.tar.gz ." # 备份 dify_es01_data 数据卷 docker run --rm -v dify_es01_data:/source -v $(pwd)/backup:/backup alpine sh -c "cd /source && tar czf /backup/es_data.tar.gz ." - バックアップファイルの転送
そうしれいかんbackupディレクトリのoradata.tar.gz歌で応えるes_data.tar.gz新サーバーへのファイル転送。 - 新しいサーバーでデータを復元する
まず、新しいサーバー上に同じ名前のデータボリュームを作成し、同様の方法でそこにデータをリストアする。# 在新服务器上创建空的命名数据卷 docker volume create oradata docker volume create dify_es01_data # 从备份文件恢复数据到 oradata 卷 docker run --rm -v oradata:/target -v /path/to/backup:/backup alpine sh -c "cd /target && tar xzf /backup/oradata.tar.gz" # 从备份文件恢复数据到 dify_es01_data 卷 docker run --rm -v dify_es01_data:/target -v /path/to/backup:/backup alpine sh -c "cd /target && tar xzf /backup/es_data.tar.gz"
方法2:ホストボリュームのディレクトリを直接操作する(root権限が必要)
を所有するサーバーが root パーミッションがあれば、ボリュームの物理ディレクトリを直接バックアップすることもできる。
- ボリュームへの物理パスの検索
docker volume inspect oradata dify_es01_dataこのコマンドはボリュームの
Mountpointすなわち、物理的なストレージパスである。 - ダイレクト・パッケージング
# 获取路径并打包 ORADATA_PATH=$(docker volume inspect -f '{{.Mountpoint}}' oradata) ES_DATA_PATH=$(docker volume inspect -f '{{.Mountpoint}}' dify_es01_data) sudo tar -czf oradata_backup.tar.gz -C $ORADATA_PATH . sudo tar -czf es_data_backup.tar.gz -C $ES_DATA_PATH .
高度な操作:ソースからのイメージの構築と管理
二次開発が必要な場合、セキュリティパッチを適用する場合、またはオフラインでデプロイする場合、ソースからの手動ビルドが必要です。 Dify な Docker ミラーリング。
APIとウェブミラーの構築
Dify コア・サービスは次のように分けられる。 api 歌で応える web 2つの部品を別々に作る必要がある。
- APIイメージをビルドする
dify/dify-api)cd api && docker build . -t dify/dify-api:0.6.14 - ウェブ画像 (
dify/dify-web)cd web && docker build . -t dify/dify-web:0.6.14
画像のエクスポートとインポート(オフライン環境用)
画像を作成したり取り出したりした後、その画像を .tar ファイルをインポートし、外部ネットワークにアクセスできないサーバーで使用する。
- ミラーのエクスポート
利用するdocker saveコマンドを使って、1つまたは複数のイメージをパッケージ化します。# 导出 Dify 核心镜像 docker save -o dify_dify_api_0.6.14.tar dify/dify-api:0.6.14 docker save -o dify_dify_web_0.6.14.tar dify/dify-web:0.6.14 # 导出其它依赖镜像 docker save -o postgres_15_alpine.tar postgres:15-alpine docker save -o redis_6_alpine.tar redis:6-alpine - 画像のインポート
新しいサーバーではdocker loadコマンドから.tarファイルで画像をロードする。docker load -i dify_dify_api_0.6.14.tar docker load -i dify_dify_web_0.6.14.tar docker load -i postgres_15_alpine.tar docker load -i redis_6_alpine.tar
コア・コンセプトの分析
以下の重要な概念を理解することは、より良いメンテナンスと使用に役立ちます。 Dify.
docker とともに docker-legacy ディレクトリ
ある Dify ソースコードには2つのデプロイメント・ディレクトリがある。docker-legacy は古いデプロイ方法であり docker カタログは、現在推奨されている、より明確に構造化された配備オプションである。新規ユーザーは常に docker カタログ

SECRET_KEY 役割
ある dify-api サービス .env 設定ファイル。SECRET_KEY は重要なセキュリティ設定である。これは長いランダムな文字列で、ユーザーのセッションを暗号化して発行するために使用される。 cookieこれはセッションが改ざんされるのを防ぐためのものです。誰も推測できないような複雑な値に設定してください。

ビルド時に無視される storage ディレクトリ
Dify な Dockerfile 画像が構築されると、その画像は .dockerignore 文書が明示的に無視される storage カタログなぜなら storage ディレクトリは、テナントがアップロードしたファイル、キー・ペア、その他の機密情報や個人情報を保存するために使用されます。 Docker 代わりに、実行時にデータボリュームを介して動的にマウントされるべきです。

パース docker run --rm バックアップ・コマンド
データ移行セクションの推奨バックアップコマンドテンプレートには、各パラメーターに以下の意味があります:
docker run --rm -v <volume_to_backup>:/source -v <host_backup_dir>:/backup <image> sh -c "<commands>"
| アセンブリー | 意味と用途 |
|---|---|
docker run |
新しいコンテナを開始する。 |
--rm |
コンテナは実行後に自動的に削除されるため、1回きりのタスクを実行したり、無駄な一時コンテナを残したりすることを避けるのに理想的である。 |
-v :/source |
をバックアップする。 Docker 内のコンテナにマウントされる。 /source カタログ |
-v :/backup |
バックアップファイルの保存に使用するホストマシン上のディレクトリを、コンテナの /backup カタログ |
| “ | などの軽量ベースイメージを指定する。 alpineを内蔵している。 tar などの一般的なツールがある。 |
sh -c "..." |
コンテナ内で実行される shell コマンドを使用します。例えば cd /source && tar czf /backup/backup.tar.gz . ソース・データ・ディレクトリに入り、そのすべての内容をバックアップ・ディレクトリに詰めることを示す。 |





































