一、在互聯網電腦上準備遷移文件
1.?保存 Docker 鏡像
# 獲取所有 Dify 相關鏡像(根據實際容器名調整)
docker ps --filter "name=dify" --format "{{.Image}}" | sort -u > dify-images.list# 保存鏡像為 .tar 文件
docker save $(cat dify-images.list) -o dify-images.tar
2.?備份數據卷or直接復制路徑
? ? ? ? (1)備份數據卷
# 查找 Dify 使用的數據卷(通常包含 postgres、redis 等)
docker volume ls --filter "name=dify" -q > dify-volumes.list# 備份每個卷數據
for volume in $(cat dify-volumes.list); dodocker run --rm -v $volume:/source alpine tar -czf /tmp/$volume.tar.gz -C /source .mv /tmp/$volume.tar.gz .
done
? ? ? ? (2).直接復制路徑文件
? ? ? ? ? ? ? ? 因為是依據代碼啟動的,按照原路徑放到內網電腦即可。
?
二、將文件傳輸到離線電腦
將以下文件通過 U 盤/硬盤復制到離線電腦:
dify-images.tar
(Docker 鏡像包)dify-volumes.list
(卷列表or原路徑)*.tar.gz
(所有卷備份文件)docker-compose.yml
?和?.env
(配置文件)
三、在離線電腦上恢復環境
1.?加載 Docker 鏡像
docker load -i dify-images.tar
2.?創建并恢復數據卷
# 創建空白數據卷
for volume in $(cat dify-volumes.list); dodocker volume create $volume
done# 恢復卷數據
for volume in $(cat dify-volumes.list); dodocker run --rm -v $volume:/target -v $(pwd):/backup alpine \sh -c "rm -rf /target/* && tar -xzf /backup/$volume.tar.gz -C /target"
done
3.?修改配置文件
編輯?
.env
?文件:確保?
OPENAI_API_KEY
?等依賴互聯網的配置為空或替換為離線模型(如本地部署的 LLM)。關閉無法離線使用的功能(如郵箱服務)。
4.?啟動 Dify
# 在 docker-compose.yml 目錄執行
docker compose up -d
四、驗證離線部署
檢查容器狀態:
docker compose ps
確保所有容器狀態為?
Up
。
訪問 Dify:
瀏覽器打開?
http://離線電腦IP:80
確認能正常登錄且無網絡錯誤。