当前位置: 首页 > news >正文

Windows下Docker一键部署Dify教程

Windows环境下Docker部署Dify完整指南

📋 目录

  • 系统要求
  • Docker安装
  • 验证Docker安装
  • Dify部署
  • 访问Dify
  • 常见问题
  • 管理命令

🖥️ 系统要求

在开始安装之前,请确保你的Windows系统满足以下要求:

硬件要求

  • CPU: >= 2核心
  • 内存: >= 4GB RAM
  • 硬盘: >= 10GB 可用空间

系统要求

  • 操作系统: Windows 10/11 (64位)
  • WSL2: Windows Subsystem for Linux 2 (Docker Desktop会自动安装)
  • 虚拟化: 需要开启Hyper-V或WSL2

🐳 Docker安装

步骤1:下载Docker Desktop

  1. 访问Docker官方网站:https://www.docker.com/products/docker-desktop/
  2. 点击 “Download for Windows” 按钮
  3. 下载 Docker Desktop Installer.exe 安装程序

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

步骤2:安装Docker Desktop

  1. 运行安装程序:双击下载的 Docker Desktop Installer.exe
  2. 选择配置
    • ✅ 勾选 “Use WSL 2 instead of Hyper-V”(推荐)
    • ✅ 勾选 “Add shortcut to desktop”
  3. 等待安装完成:安装过程需要几分钟
  4. 重启计算机:安装完成后重启系统

步骤3:启动Docker Desktop

  1. 从桌面或开始菜单启动 Docker Desktop
  2. 等待Docker引擎启动(状态显示为绿色"Running")
  3. 首次启动可能需要几分钟时间

✅ 验证Docker安装

打开 PowerShell命令提示符,执行以下命令验证安装:

检查Docker版本

docker --version

预期输出示例:

Docker version 24.0.7, build afdd53b

检查Docker Compose版本

docker compose version

预期输出示例:

Docker Compose version v2.21.0

运行测试容器

docker run hello-world

预期输出示例:

Hello from Docker!
This message shows that your installation appears to be working correctly.

如果以上命令都正常执行,说明Docker安装成功!


🚀 Dify部署

步骤1:获取Dify源码

方法一:从GitHub下载
  1. 访问:https://github.com/langgenius/dify
  2. 点击绿色的 “Code” 按钮
  3. 选择 “Download ZIP”
  4. 解压到本地目录(如:D:\dify-main
方法二:使用Git克隆(推荐)
git clone https://github.com/langgenius/dify.git
cd dify

步骤2:进入Docker目录

cd docker

步骤3:配置环境变量

根据你使用的终端选择对应命令:

# Windows命令提示符(CMD)
copy .env.example .env# PowerShell
Copy-Item .env.example .env# Git Bash 或 WSL
cp .env.example .env

💡 提示.env文件包含了Dify的所有配置参数,默认配置适合大多数用户。如需自定义,可以编辑此文件。

步骤4:启动Dify服务

docker compose up -d

首次启动会下载所需镜像,可能需要10-15分钟时间,请耐心等待。

步骤5:验证部署状态

docker compose ps

预期输出示例:

NAME                     IMAGE                                       STATUS
docker-api-1             langgenius/dify-api:1.4.2                   Up 2 minutes
docker-db-1              postgres:15-alpine                          Up 2 minutes (healthy)
docker-nginx-1           nginx:latest                                Up 2 minutes
docker-redis-1           redis:6-alpine                              Up 2 minutes (healthy)
docker-web-1             langgenius/dify-web:1.4.2                   Up 2 minutes
docker-weaviate-1        semitechnologies/weaviate:1.19.0            Up 2 minutes
...

看到所有服务状态为"Up"表示部署成功!


🌐 访问Dify

打开Dify界面

  1. 打开浏览器访问:http://localhost
  2. 首次访问会自动跳转到安装页面:http://localhost/install

初始化设置

  1. 设置管理员账户

    • 输入邮箱地址
    • 设置密码(至少8位)
    • 输入管理员姓名
  2. 完成初始化

    • 点击"下一步"
    • 等待系统初始化完成
  3. 开始使用

    • 登录成功后即可开始使用Dify
    • 探索AI应用构建功能

❓ 常见问题

Q1: Docker启动失败?

解决方案:

  • 确保Windows已开启虚拟化功能
  • 检查是否正确安装WSL2
  • 重启Docker Desktop服务

Q2: 端口80被占用?

解决方案:

# 查看占用端口80的进程
netstat -ano | findstr :80# 修改docker-compose.yaml中的端口映射
# 将 "80:80" 改为 "8080:80"

Q3: 容器启动失败?

解决方案:

# 查看详细日志
docker compose logs# 重新启动服务
docker compose restart

Q4: 访问页面显示502错误?

解决方案:

# 检查API服务状态
docker compose logs api# 重启API服务
docker compose restart api

🛠️ 管理命令

服务管理

# 启动所有服务
docker compose up -d# 停止所有服务
docker compose down# 重启所有服务
docker compose restart# 查看服务状态
docker compose ps

日志查看

# 查看所有服务日志
docker compose logs# 查看特定服务日志
docker compose logs api
docker compose logs web
docker compose logs nginx# 实时查看日志
docker compose logs -f

数据管理

# 停止服务并删除数据
docker compose down -v# 更新镜像
docker compose pull
docker compose up -d

系统清理

# 清理未使用的镜像
docker image prune# 清理未使用的容器
docker container prune# 清理未使用的网络
docker network prune

🎯 下一步

恭喜!你已经成功在Windows环境下部署了Dify。现在你可以:

  1. 探索Dify功能

    • 创建AI应用
    • 设计工作流
    • 配置知识库
  2. 学习更多

    • 访问Dify官方文档
    • 查看GitHub仓库
    • 加入Discord社区
  3. 进阶配置

    • 自定义环境变量
    • 配置外部数据库
    • 设置域名访问

📞 获取帮助

如果遇到问题,可以通过以下方式获取帮助:

  • 官方文档: https://docs.dify.ai
  • GitHub Issues: https://github.com/langgenius/dify/issues
  • Discord社区: https://discord.gg/FngNHpbcY7
  • Reddit社区: https://reddit.com/r/difyai

🎉 祝你使用Dify愉快!开始构建你的AI应用吧!

http://www.xdnf.cn/news/1044361.html

相关文章:

  • htmlcss考核
  • WebAssembly 2.0:超越浏览器的全栈计算革命
  • 【Zephyr 系列 26】跨平台测试框架设计:CLI + 自动脚本 + OTA 校验一体化方案
  • NVIDIA Isaac GR00T N1.5 人形机器人强化学习入门教程(四)Lerobot、宇树 G1 等不同形态机器人微调教程
  • Spring Boot的Security安全控制——应用SpringSecurity!
  • Java面试题022:一文深入了解微服务网关Gateway
  • 微软azure抢跑aws和谷歌云的区别
  • SpringMVC系列(一)(介绍,简单应用以及路径位置通配符)
  • 使用Nodejs尝试小程序后端服务编写:简单的待办事项管理demo
  • Java EE与Jakarta EE命名空间区别
  • Appium+python自动化(二十三)- Monkeyrunner与Monkey
  • 基于PPSO与BP神经网络回归模型的特征选择实战(Python实现)
  • Node.js 中常用的异步函数讲解、如何检测异步操作时间和事件
  • NodeJS的yarn和npm作用和区别,为什么建议用yarn
  • AWS 解决方案深度剖析:Amazon QLDB — 构建可信赖、不可变的数据审计基石
  • 智造奇点:AI超级工厂如何重塑制造业DNA
  • nodejs和npm升级
  • 什么是稳定币?
  • windows制作ubuntu系统安装盘
  • 算法题(169):最大子段和(分治思想)
  • AnimateCC及CreateJS:打飞机的4版本V1、V2、V3、V4
  • UltraISO绿色便携版v9 下载与安装教程
  • 基于51单片机的校园打铃及灯控制系统
  • 芯片测试之 trim修调详解
  • 《棒垒球科普》足垒球的规则·垒球2号位
  • [直播推流] 使用 librtmp 库推流
  • KSP密钥管理系统赋能智能制造:密钥管理系统在智能制造行业中有哪些典型应用
  • 单机定时任务@Schedule的常见问题
  • 5.5.1_哈夫曼树
  • uni-app项目loading显示方案