Windows11+Dify 1.14离线迁移部署完整方案(内网无网络环境)2026.06测试有效

整体思路

分两大阶段:

  1. 有外网机器(已装好 Dify):打包全部 Docker 镜像、Dify 源码、依赖离线包、环境配置;
  2. 内网离线机器:先部署 Docker/WSL2,导入镜像,解压源码,恢复配置,启动服务。

前提:两台机器系统一致(均 Win11)、CPU 架构一致(都是 x86_64,现在电脑基本满足)。

一、外网机器操作(打包离线资源)

1. 导出所有 Dify 相关 Docker 镜像

进入 dify/docker 目录,先查看所有运行镜像

powershell

docker compose up -d
docker compose images

方案 1:一键导出 compose 关联所有镜像(推荐)

powershell

# 直接输出所有镜像名 repo:tag,一行一个
docker compose config --images > image_list.txt
# 查看内容确认
Get-Content image_list.txt

执行后应该能看到类似下面内容

langgenius/dify-web:1.14.2
busybox:latest
langgenius/dify-api:1.14.2
langgenius/dify-api:1.14.2
langgenius/dify-plugin-daemon:0.6.1-local
nginx:latest
postgres:15-alpine
ubuntu/squid:latest
langgenius/dify-api:1.14.2
langgenius/dify-sandbox:0.2.15
redis:6-alpine
langgenius/dify-api:1.14.2
semitechnologies/weaviate:1.27.0

批量打包

# 批量打包为离线tar包

# 读取所有行转为数组
$imgs = Get-Content image_list.txt
# 一次性打包全部镜像到 dify_offline_images.tar
docker save -o dify_offline_images.tar @imgs

执行完成后目录出现 dify_offline_images.tar(大小约 6~10G)。

方案 2:单条导出(PowerShell 报错时用)

powershell

docker save langgenius/dify-web:latest -o web.tar
docker save langgenius/dify-api:latest -o api.tar
docker save langgenius/dify-worker:latest -o worker.tar
docker save postgres:15-alpine -o postgres.tar
docker save redis:6-alpine -o redis.tar
docker save nginx:alpine -o nginx.tar

2. 打包完整 Dify 源码目录

把整个 dify 文件夹完整复制,包含:

  • docker-compose.yml
  • .env 配置文件(你的账号、端口、模型配置都在这里)
  • .env.example、nginx 配置、插件目录等

不要只复制 docker 子文件夹,完整根目录带走。

3. 导出数据库数据(必须!否则内网部署后知识库、应用全部丢失)

两种备份方式任选其一

方式 A:docker compose 导出 PostgreSQL 数据库

dify/docker 执行:

powershell

ocker compose exec db_postgres pg_dump -U postgres dify > dify_backup.sql

生成 dify_backup.sql,是全部业务数据离线备份文件。

方式 B:打包数据卷(最简单,完整迁移)

查看数据卷名称

powershell

docker volume ls

找到类似 docker_dify-db-datadocker_dify-redis-data 的卷,导出卷备份:

powershell

# 备份数据库卷
docker run --rm `
-v docker_dify-redis-data:/source `
-v ${PWD}:/backup `
alpine tar -czvf /backup/redis_volume.tar.gz -C /source .
# 备份redis缓存卷
docker run --rm `
-v docker_dify-db-data:/source `
-v ${PWD}:/backup `
alpine tar -czvf /backup/db_volume.tar.gz -C /source .

4. 收集 Docker Desktop 离线安装包

内网机器不能联网,需要提前下载安装程序:

  1. Docker Desktop 离线安装包:Docker Desktop Installer.exe
  2. WSL2 Linux 内核更新包:wsl_update_x64.msi
  3. 可选:Git 安装包(内网如需修改源码备用)

5. 统一整理所有离线文件,拷贝到 U 盘 / 移动硬盘

目录结构示例:

plaintext

dify_offline_package/
├─ Docker安装依赖/
│  ├─ Docker Desktop Installer.exe
│  └─ wsl_update_x64.msi
├─ dify/                  # 完整dify源码文件夹
├─ dify_offline_images.tar # 全部docker镜像包
├─ dify_backup.sql        # 数据库SQL备份
├─ db_volume.tar.gz       # 数据库卷备份(二选一)
└─ redis_volume.tar.gz    # Redis卷备份

二、内网离线 Win11 机器部署步骤(全程断网)

步骤 1:离线安装 WSL2、虚拟机平台(无需联网)

  1. 以管理员打开 PowerShell,执行开启功能(Windows 自带,不用网)

powershell

wsl --install
  1. 双击离线包 wsl_update_x64.msi 安装 WSL 内核
  2. 重启电脑

步骤 2:离线安装 Docker Desktop

  1. 双击 Docker Desktop Installer.exe,勾选 WSL2 后端安装
  2. 安装完成后启动 Docker(此时无网络,忽略联网登录弹窗,关掉即可)
  3. 打开 Docker 设置,和外网机器配置保持一致:分配内存、WSL 集成

步骤 3:导入离线 Docker 镜像

把 U 盘里的 dify_offline_images.tar 复制到内网机器无中文路径,PowerShell 进入该目录执行导入:

powershell

docker load -i dify_offline_images.tar

等待导入完成,执行 docker images 验证所有镜像已存在。

步骤 4:恢复 Dify 源码与配置

  1. 将完整 dify 文件夹复制到内网机器(路径和外网尽量一致,如 D:\dify)
  2. 进入 dify/docker,检查 .env 文件:
    • 端口、域名根据内网 IP 按需修改
    • 不需要联网的模型(本地 Ollama)保留配置;云端 API Key 可清空

步骤 5:恢复业务数据(二选一,卷恢复更简单)

方案 A:数据卷恢复(推荐,完全保留原环境)

  1. 先临时启动一次容器创建空卷

powershell

cd D:\dify\docker
docker compose up -d db_postgres redis
  1. 停止数据库、redis 容器

powershell

docker compose stop db_postgres redis
  1. 覆盖恢复数据库卷

powershell

docker run --rm -v docker_dify-db-data:/target -v ${PWD}:/backup alpine tar -xzvf /backup/db_volume.tar.gz -C /target
docker run --rm -v docker_dify-redis-data:/target -v ${PWD}:/backup alpine tar -xzvf /backup/redis_volume.tar.gz -C /target

方案 B:SQL 文件导入(全新空卷导入数据)

  1. 启动postgres服务

powershell

docker compose up -d db_postgres
  1. 2.删除当前的dify数据库(因为之前备份是全量备份的,有很多创建表的操作,会提示冲突),然后创建dify数据库
  2. DROP DATABASE IF EXISTS dify;
    CREATE DATABASE dify;
    \q

  3. 执行 SQL 恢复

powershell

cat dify_backup.sql | docker compose exec -T db_postgres psql -U postgres dify

步骤 6:启动 Dify 离线服务

powershell

cd D:\dify\docker
docker compose up -d

查看容器状态 docker compose ps,全部 Up 即为成功。 浏览器访问 http://localhost 或内网 IP,原有应用、知识库、模型配置全部保留。

三、关键补充:如果内网需要本地大模型(Ollama 离线配套)

若 Dify 对接本地 Ollama,额外在外网机器导出 ollama 镜像与模型文件:

  1. 导出 ollama 镜像 docker save ollama/ollama -o ollama.tar
  2. 复制 Ollama 模型目录 C:\Users\你的用户名\.ollama\models 完整离线拷贝到内网对应路径
  3. 内网导入 ollama 镜像,无需重新下载模型

四、离线迁移避坑要点

  1. 禁止修改源码目录层级,否则 docker-compose 挂载路径失效;
  2. 内网机器不能联网,Docker 无需登录账号,不影响本地镜像运行;
  3. 迁移前外网机器建议执行 docker compose down 停止服务再备份,避免数据损坏;
  4. 两台机器 CPU 架构必须相同,不支持 x86 与 ARM 跨架构迁移;
  5. 若内网有防火墙,放行 Nginx 端口(默认 80),其他电脑可通过内网 IP 访问;
  6. 不要删除 .env 文件,所有模型密钥、存储配置都存在这里。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值