WSL中Docker Desktop的docker-desktop文件夹能否存储Laravel项目?
解决WSL2+Docker下Laravel运行缓慢的问题
核心结论
- 必须安装Ubuntu(或其他官方支持的WSL发行版),绝对不要把项目放到
docker-desktop或docker-desktop-data文件夹。
原因说明
docker-desktop和docker-desktop-data是Docker Desktop专属的内部WSL发行版/数据卷,用来运行Docker守护进程、存储镜像和容器数据,不是给用户存放项目代码的:
- 这些文件夹的内容由Docker自动管理,随时可能被Docker升级、重置操作覆盖,项目数据存在丢失风险。
- 它们的文件系统权限和结构是为Docker服务优化的,存放开发者项目会引发权限冲突、访问异常等问题。
正确操作步骤
- 安装Ubuntu发行版
打开微软商店,搜索「Ubuntu」选择任意版本(比如Ubuntu 22.04 LTS)安装,完成后设置用户名和密码。 - 确认WSL版本为2
打开Windows终端,运行命令:
若你的Ubuntu版本默认是1,再运行:wsl --set-default-version 2wsl --set-version Ubuntu-22.04 2 - 迁移Laravel项目到WSL文件系统
打开Ubuntu终端,在用户目录下创建项目文件夹:
把Windows里的Laravel项目复制到这个目录(可以用mkdir ~/laravel-projectscp命令,或者通过Windows文件管理器访问\\wsl$\Ubuntu-22.04\home\你的用户名\laravel-projects粘贴)。 - 配置Docker挂载
在docker-compose.yml里,挂载WSL里的项目路径到容器,示例:
这样Docker直接访问WSL内部文件系统,读写速度会和原生Linux环境一致,彻底解决卡顿问题。services: app: image: php:8.2-fpm volumes: - ~/laravel-projects/your-app:/var/www/html
额外提示
- 日常开发可通过Windows文件管理器访问
\\wsl$\Ubuntu-22.04编辑WSL里的项目文件,编辑器(比如VS Code)直接打开该路径即可,无需切换到Ubuntu终端操作。 - 确保Docker Desktop的「Use the WSL 2 based engine」选项已开启(在Docker设置的General页面)。
内容的提问来源于stack exchange,提问作者KOSOY
相关产品推荐
相关产品推荐

