DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

由于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

年度最有价值文章

季度最有价值文章

月度最有价值文章

投票统计

是否原创: 0 %

0 % Complete (success)

是否有价值: 0 %

0% Complete

是否有素质: 0 %

0% Complete (warning)

是否合法: 0 %

0% Complete

   群组工具

   外部链接