端口冲突
我遇到了类似的问题,Docker for Windows 和 Hyper-V 保留了自己使用的端口 – 就我而言,该端口3001无法访问。
- 该端口未被其他进程使用 –
netstat -ano | findstr 3001在管理员 Powershell 提示符下运行没有显示任何内容。 - 但是,
netsh interface ipv4 show excludedportrange protocol=tcp表明该端口位于排除范围之一内。
- 禁用 Hyper-V:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V - 完成所需的重新启动后,保留所需的端口,以便 Hyper-V 不会将其保留回来:
netsh int ipv4 add excludedportrange protocol=tcp startport=3001 numberofports=1 - 重新启用 Hyper-V:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
之后,我就可以启动我的 docker 容器了。
- 无需担心特定端口:
net stop winnat。 - @AbhiAbzs 该命令也对我有用,但我必须运行它两次。我遇到了 3 个端口的问题,第一次运行该命令修复了其中的 2 个,第二次运行修复了其余端口。我观察到每次重新启动时排除范围都会发生变化。在有人认为此命令对他们不起作用之前,请确保运行以下命令以在重新启动后查看排除范围。
netsh interface ipv4 show excludedportrange protocol=tcp–
只需Restart-Service hns更改Hyper-V占用的端口即可。它可能会释放您需要的端口。 - 没有什么对我有用。Grep 找不到罪魁祸首侦听器。重置 TCP/IP 或防火墙也没有任何作用。以下命令解决了它:
- net stop http