
1. Windows本地部署DifyDocker项目概述在本地环境搭建AI开发平台正成为越来越多开发者的刚需。Dify作为一款开源的LLM应用开发平台允许开发者通过可视化界面快速构建基于大语言模型的应用程序。而Docker容器化技术则完美解决了在我机器上能跑的经典难题让部署过程变得标准化且可复现。这次我们要在Windows系统上完成Dify的完整部署。与Linux/macOS环境相比Windows部署有几个特殊注意事项必须启用WSL2子系统、Docker存储路径需要特别配置、以及可能遇到端口冲突等问题。不过别担心跟着我的实战记录一步步操作你也能在半小时内拥有一个本地的AI开发环境。2. 环境准备与前置条件2.1 硬件与系统要求先确认你的Windows设备满足以下最低配置CPU至少2核推荐4核以上内存4GB运行大模型建议16GB存储至少20GB可用空间SSD更佳系统版本Windows 10 2004及以上或Windows 11提示如果计划后续接入本地大模型建议配置32GB以上内存和NVIDIA显卡需CUDA支持2.2 安装WSL2子系统Windows下的Docker依赖WSL2Windows Subsystem for Linux 2按以下步骤启用以管理员身份打开PowerShellwsl --install安装完成后重启系统验证WSL版本wsl -l -v应显示类似NAME STATE VERSION * Ubuntu Running 2如果版本显示为1需要手动升级wsl --set-version Ubuntu 22.3 Docker Desktop安装配置从官网下载Docker Desktop for Windows安装包安装时勾选Use WSL 2 instead of Hyper-V安装完成后进入Settings左侧导航到Resources → WSL Integration启用你的WSL发行版如Ubuntu调整CPU和内存限制建议内存≥8GB验证安装docker --version # 应显示类似Docker version 24.0.5, build 24.0.5-0ubuntu1~20.04.1 docker compose version # 确认版本≥2.24.03. Dify部署实战步骤3.1 获取Dify最新代码在PowerShell中执行# 安装必要工具首次运行需要 winget install Git.Git winget install curl winget install stedolan.jq # 克隆最新release分支 git clone --branch $(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name) https://github.com/langgenius/dify.git3.2 配置环境变量进入项目目录准备配置文件cd dify/docker cp .env.example .env关键配置项说明按需修改# 数据库配置 POSTGRES_PASSWORDyour_strong_password # 必改项 REDIS_PASSWORDyour_redis_password # 必改项 # 服务端口避免冲突 NGINX_HTTP_PORT80 # 如被占用可改为8080 NGINX_HTTPS_PORT443 # 如被占用可改为8443 # 存储路径建议设为WSL内路径 STORAGE_DIR/var/lib/dify/storage3.3 启动Dify服务执行以下命令启动容器docker compose up -d正常启动后会创建12个容器核心服务api、api_websocket、worker、web等依赖组件PostgreSQL、Redis、Weaviate等初始化容器init_permissions会自动退出验证服务状态docker compose ps所有运行中容器的STATUS列应显示为Up或healthy。4. 常见问题与解决方案4.1 端口冲突处理如果启动时报端口冲突可通过以下步骤解决找出占用端口的进程netstat -ano | findstr :80修改docker/.env中的端口配置NGINX_HTTP_PORT8080 NGINX_HTTPS_PORT8443重启服务docker compose down docker compose up -d4.2 WSL磁盘空间不足默认WSL2虚拟硬盘最大256GB可通过以下方式扩展关闭WSLwsl --shutdown调整虚拟硬盘大小diskpart select vdisk fileC:\Users\你的用户名\AppData\Local\Docker\wsl\data\ext4.vhdx expand vdisk maximum51200 # 单位MB此处扩展为50GB4.3 容器启动失败排查当docker compose ps显示异常状态时查看具体日志docker compose logs api # 替换为异常服务名常见错误原因内存不足增加Docker内存分配数据库连接失败检查POSTGRES_PASSWORD是否一致网络问题尝试重启Docker服务5. 初始化与使用指南5.1 管理员账户设置在浏览器访问根据实际端口调整http://localhost/install按向导完成设置管理员邮箱和密码配置SMTP服务可选完成初始化检查5.2 开发第一个AI应用成功登录后http://localhost点击创建新应用选择应用类型对话/文本生成在Prompt编排界面设计你的AI逻辑通过右侧预览窗口实时测试5.3 连接本地大模型如需接入本地部署的LLM如Ollama进入设置 模型供应商添加自定义API供应商配置本地模型地址API Base: http://host.docker.internal:11434测试连接后保存6. 维护与升级策略6.1 日常维护命令停止服务docker compose down重启单个服务docker compose restart api查看实时日志docker compose logs -f worker6.2 数据备份方案关键数据包括数据库PostgreSQL容器中的dify数据库配置文件docker/.env和docker/envs/上传文件STORAGE_DIR指定目录推荐备份命令# 备份数据库 docker compose exec db_postgres pg_dump -U postgres dify dify_backup.sql # 备份整个项目排除容器 tar --exclude./docker/volumes -czvf dify_backup.tar.gz ./dify6.3 版本升级步骤获取最新代码cd dify git fetch --tags git checkout $(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)对比环境变量变更diff docker/.env.example docker/.env执行升级docker compose down docker compose pull docker compose up -d在Windows上运行Dify的这几个月最深的体会是WSL2的磁盘性能问题。建议将项目直接克隆到WSL子系统内部如\wsl$\Ubuntu\home\而不是Windows文件系统这样能显著提升容器IO性能。另外当需要处理大量数据时适当调整Docker的WSL内存限制我通常设置为物理内存的60%可以避免OOM killer终止关键进程。