我试图在 Windows 10 上运行 docker 容器,但总是收到此错误“无法启动服务 SERVICE_NAME:端口不可用:无法列出公开的端口:获取“http://unix/forwards/list”:上下文超出截止日期(等待标头时超出 Client.Timeout)” 。我尝试删除容器并再次重建它,但这对我不起作用。
PS:这个错误与特定服务无关,虽然之前成功启动过同一个服务,但每次都发生在不同的服务中
请问有什么帮助吗?
这帮助我解决了同样的问题
netsh winsock reset
问题在于 Windows 中的 Hyper-V,它保留了一系列端口以满足其需求。此范围可能与 Docker 映像使用的端口重叠。
您需要在 CMD 或 PowerShell 中运行以下命令:
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384
执行命令后,必须重新启动计算机。
这将强制限制 Hyper-V 可以为其需求保留端口的范围。 当然,Docker 映像不应使用 49152 到 65536 之间的端口,因为 Hyper-V 或 Windows 可以使用此范围。