从"怕落伍"到"真没必要":我在Windows上折腾WSL 2和Docker的一天

一个webman开发者的真实踩坑记录

一、背景

我是一个webman开发者,在Windows上用PHPStorm写了四年代码,一直用小皮面板跑环境。开发流程很简单:

  1. Windows上写代码
  2. php start.php start 跑起来
  3. ZIP打包上传宝塔(Debian)
  4. 解压、配置、上线

这套流程跑了四年,稳定得一批。

二、为什么突然想折腾?

最近看到大家都在聊Docker、WSL,感觉自己快落伍了。加上webman在Windows下偶尔会有"假死"的情况(虽然重启一下就好),就想试试:

  • 要不要用WSL替代Windows原生开发?
  • 要不要上Docker跟一波"主流"?

于是,我开启了一天的折腾之旅。

三、折腾过程(精简版)

3.1 装WSL

# 管理员PowerShell
wsl --install

踩坑:报错 Wsl/InstallDistro/Service/RegisterDistro/CreateVm/HCS/ERROR_NOT_SUPPORTED

原因:虚拟化平台没开启

解决

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启

3.2 安装Ubuntu

微软商店搜索"Ubuntu",安装最新LTS版本。

踩坑:命令行 wsl --install 下载卡住不动,改用商店下载成功。

3.3 安装Docker Desktop

官网下载安装包,安装时勾选"Use WSL 2 instead of Hyper-V"。

3.4 配置Docker

  • 设置 → Resources → Advanced → Disk image location 改到 D盘(C盘空间不足)
  • 设置 → Resources → WSL Integration → 勾选Ubuntu

3.5 拉取镜像(卡住了)

docker pull php:8.3-cli

报错:连接超时、no such host、dial tcp超时…

试了中科大、网易、百度镜像加速器,全部失败。最终放弃。

四、核心结论

4.1 WSL:值得用

对比项Windows原生WSL 2
pcntl/posix支持模拟原生 ✅
webman稳定性偶尔卡死丝滑稳定 ✅
进程模型单进程多进程 ✅

结论:用WSL替代Windows CMD跑webman,明显更稳。

4.2 Docker:对webman开发不是必需品

如果你的场景是:

  • 个人开发者
  • 最终部署到宝塔
  • 用ZIP打包上传

Docker确实不是必须的。

Docker真正有用的是:

  • 本地快速装MySQL/Redis/ES等依赖服务
  • 需要多PHP版本切换测试
  • 团队统一开发环境

五、最终工作流

写代码:Windows + PHPStorm
代码存放:\\wsl.localhost\Ubuntu\home\用户名\code
本地运行:Ubuntu终端 → cd ~/code/项目 → php start.php start
线上部署:ZIP打包 → 上传宝塔 → 解压配置

Docker留作备用,需要装MySQL/Redis时再拿出来用。

六、给同样纠结的你

  1. WSL可以装,它解决Windows下进程卡死的问题,学习成本极低
  2. Docker不是必须,别被"落伍"焦虑绑架,适合自己工作流的才是最好的
  3. 国内网络问题很真实,如果拉不动镜像,别死磕,换条路走
  4. ZIP上传宝塔没问题,这不是"低级",这是"匹配"

七、一句话总结

工具服务于人,别让人服务于工具。


评论区欢迎讨论:你的开发部署流程是怎样的?用Docker了吗?

更多推荐