从“怕落伍“到“真没必要“:我在Windows上折腾WSL 2和Docker的一天
·
从"怕落伍"到"真没必要":我在Windows上折腾WSL 2和Docker的一天
一个webman开发者的真实踩坑记录
一、背景
我是一个webman开发者,在Windows上用PHPStorm写了四年代码,一直用小皮面板跑环境。开发流程很简单:
- Windows上写代码
php start.php start跑起来- ZIP打包上传宝塔(Debian)
- 解压、配置、上线
这套流程跑了四年,稳定得一批。
二、为什么突然想折腾?
最近看到大家都在聊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时再拿出来用。
六、给同样纠结的你
- WSL可以装,它解决Windows下进程卡死的问题,学习成本极低
- Docker不是必须,别被"落伍"焦虑绑架,适合自己工作流的才是最好的
- 国内网络问题很真实,如果拉不动镜像,别死磕,换条路走
- ZIP上传宝塔没问题,这不是"低级",这是"匹配"
七、一句话总结
工具服务于人,别让人服务于工具。
评论区欢迎讨论:你的开发部署流程是怎样的?用Docker了吗?
更多推荐
所有评论(0)