一、在互联网电脑上准备迁移文件
1. 保存 Docker 镜像
bash
# 获取所有 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)备份数据卷
bash
# 查找 Dify 使用的数据卷(通常包含 postgres、redis 等)
docker volume ls --filter "name=dify" -q > dify-volumes.list
# 备份每个卷数据
for volume in $(cat dify-volumes.list); do
docker 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 镜像
bash
docker load -i dify-images.tar
2. 创建并恢复数据卷
bash
# 创建空白数据卷
for volume in $(cat dify-volumes.list); do
docker volume create $volume
done
# 恢复卷数据
for volume in $(cat dify-volumes.list); do
docker 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
bash
# 在 docker-compose.yml 目录执行
docker compose up -d
四、验证离线部署
-
检查容器状态:
bashdocker compose ps
- 确保所有容器状态为
Up
。
- 确保所有容器状态为
-
访问 Dify:
-
浏览器打开
http://离线电脑IP:80
-
确认能正常登录且无网络错误。
-