作者: kideny 访问次数: 812 创建时间: 2022-01-25 09:25:58 更新时间: 2024-04-24 05:28:25
由于WSL2存在跨文件系统的性能问题,在Win10下使用Docker+WSL2,开发Laravel这种需要加载大量文件的开发框架,效率奇差难以忍受。我不得不把Docker从WSL2切换回Hyper-V了,但是又发生了新的问题。错误代码类是:
ERROR: for php-fpm Cannot start service php-fpm: Ports are not available: listen tcp 0.0.0.0:9003: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
ERROR: Encountered errors while bringing up the project.
Hyper-V保留了部分端口,导致在Docker里启动容器发生报错,本文详述如何解决这个问题。
第一步:查看被Hyper-V保留的端口
一个非常蛋疼的问题是,被Hyper-V保留的端口,在性能监视器里找不到,用netstat命令也查不到。如果你在Windows的资源管理器打开性能监视器,看看那些端口被占用了,你会发现完全找不到。如果使用
netstat –ano | findstr “9003"
也查不到被占用的命令,需要使用netsh命令,记得以管理员身份
打开cmd或powershell,然后运行:
netsh interface ipv4 show excludedportrange protocol=tcp
第二步:暂时关闭Hyper-V,需重启
在命令行中执行如下命令,暂时关闭Hyper-V。
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
这一步,需要重启计算机,不然无法执行下一步操作。
第三步:打开被Hyper-V保留的端口
netsh int ipv4 add excludedportrange protocol=tcp startport=9003 numberofports=1
第四步:开启Hyper-V,,需要重启Windows
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
语言: zh-CN
翻译人员:
原作者:
转载地址:
源网址:
版权: 本站所有内容, 版权归原作者所有。发表原创内容将会获得现金奖励, 并且随着时间倍数增长, 请了解我们的内容奖励计划。