如果说在 Linux 服务器上部署一套开源应用是开发者的基本功,那在 Windows 系统里,把 WSL 2 的底层兼容性、Docker 的容器编排和 Dify 的全套微服务架构一次性地、稳定地跑通,则更像是一场对技术耐心和排查能力的综合考验。大多数教程会告诉你 wsl --install 和 docker compose up -d 这两行命令,但只有真正动手的人才会遇到那些官方文档里没写的坑:断流错误、国内拉取镜像时的频繁限流、无法连接的权限陷阱,以及 Dify 工作流编辑器里那令人抓狂的“同步数据中”死循环。这不仅仅是安装几个软件,更是一场涉及 Linux 内核版本、Docker 引擎配置、容器网络代理的系统工程。本文将一步步带你穿越这些障碍,从零开始在 Windows 上搭建一个可用于生产的 Dify 本地开发环境。如果你也曾被这些细节困扰,希望这份详尽的实战记录能成为你翻越这座小山的梯子。首先要确保你的电脑是在windows 10 professional或windows 11以上的系统。在安装WSL之前,先确认你的电脑已经开启虚拟化,在任务管理器的性能中查看是否已开启,如果还没有开启,就进入BIOS开启,各品牌的电脑的开启方法不一样,请按照具体的BIOS设置说明开启虚拟化。 开始安装WSL 2:以管理员身份运行powershell,在powershell中输入命令wsl --install,等待安装完成,安装完成后重启电脑。WSL 是Windows 上一个完整的Linux 运行环境,它的核心功能就是让你能在Windows 里原生运行Linux 命令行和应用程序。
确认安装好WSL2之后,可开始安装Docker desktop。前往官网https://www.docker.com/,找到相应的Docker desktop安装包,下载其安装包。安装Docker desktop后,要注意查看是否已开启了虚拟驱动器枚举器和虚拟网络适配器枚举器。
如果没有开启上面这两项,则很可能在启动Docker时出现下面这样的错误:
按键盘Win+R键,输入wt并回车,进入windows terminal界面。如果你输入wt回车后出现错误,说明你的电脑还没有安装windows terminal。可以在命令行中用下面这个命令安装它:
winget install --id Microsoft.WindowsTerminal -e

在Windows terminal的界面里,点击上方+号右侧的下拉箭头,在下拉选项中,选择Ubuntu,这样就进入了Linux系统。
进入Linux系统后,就可以用各种命令进行操作。但是如果要用docker命令,必须打开docker desktop,并如下图这样设置wsl integration后才能使用。
先用Linux命令创建一个文件夹,然后进入这个文件夹:git clone https://github.com/langgenius/dify.git
上面这个git命令是从github官网克隆dify的,在国内访问github非常慢,有时还连不上,可以试从国内的gitee网克隆:git clone https://gitee.com/mirrors/dify.git
克隆完成后,准备拉取镜向文件和部署dify。首先要复制一个环境配置文件,用cd命令进入dify/docker文件夹,运行下面这个命令:上面这个命令的意思是在当前文件夹(docker文件夹)里把.env.example文件复制一份并命名为.env。如果不修改这个.env文件,部署的dify默认是用80端口,如果不想使用80端口,可修改.env文件。用下面的命令打开.env文件:
打开文件后,用快捷键Ctrl+W,查找EXPOSE_NGINX_PORT=80这行文本,把80改成其他可用的端口号。再按Ctrl+X保存并退出,返回到linux命令行。
接下来是拉取镜向文件,用下面这个命令拉取所有文件:
上面这个命令本意是拉取和部署一步完成,但是实际上,由于需要拉取的文件非常多,直接用这个命令是无法完成的。但这个命令能列出需要拉取的所有文件名称和版本,然后不断提示“请求过于频繁”。
为了解决拉取文件过慢的问题,先要修改docker的拉取网址,如下图所示,在docker desktop中设置Docker Engine。
设置的全部Json值如下:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true }, "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.nju.edu.cn" ]}
接下来,不要再用docker compose pull或docker compose up -d这样的命令拉取文件,而是用docker pull 命令逐个拉取,总共有11到12个文件需要拉取,如下图是拉取langgenius/dify-web:1.16.1:
docker pull langgenius/dify-web:1.16.1

等到全部拉取完成后,再运行一次docker compose up -d命令,就可以启动dify了。
在浏览器里输入http://localhost进入dify的界面,首次进入会要求设置邮箱、用户名和密码:
dify当前最新的1.16.1版本在某些电脑上运行时存在一个bug,在创建工作流时,一直提示同步数据中,因此,必须使用较低的稳定版(例如1.14.2版),降低版本的方法如下:
1、进入dify/docker文件夹,打开修改docker-compose.yaml文件,把其中的langgenius/dify-api:1.16.1改成langgenius/dify-api:1.14.2,再把langgenius/dify-web:1.16.1改成langgenius/dify-web:1.14.2。
2、然后重新执行docker compose pull拉取镜向。
3、执行docker compose up -d重新启动即可解决问题。
至此,我们从零开始,在 Windows 上完成了 WSL 2 的配置、Docker 的安装,并最终将 Dify 这套完整的 AI 应用开发平台跑了起来。这一路踩过的坑相信每一个亲手操作过的人都深有体会。
技术这条路,从来没有"一键搞定"的坦途。正是这些看似琐碎的障碍,磨炼了我们排查问题、理解系统底层逻辑的能力。当你最终在浏览器里看到 Dify 的控制台成功加载,创建的第一个工作流顺畅跑通时,之前所有的折腾都会变得值得。
希望这篇记录能成为你部署路上的一份参考,帮你少走一些弯路。如果在操作中遇到其他问题,欢迎在评论区留言交流。