尝试在Docker中运行节点Red时,端口不可用

尝试在Docker中运行节点Red时,端口不可用,docker,node-red,Docker,Node Red,当我尝试使用以下命令运行Node Red的Docker容器时: docker run -p 1880:1880 --name mynodered nodered/node-red 我得到以下错误: c:\program files\docker\docker\resources\bin\docker.exe: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:1880: bind: An attem

当我尝试使用以下命令运行Node Red的Docker容器时:

docker run  -p 1880:1880 --name mynodered nodered/node-red
我得到以下错误:

c:\program files\docker\docker\resources\bin\docker.exe: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:1880: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
我尝试使用netstat查找任何占用端口的内容,但没有找到任何内容。我还尝试打开Windows防火墙中的端口,但仍然出错


是否有其他方法在端口为1880的Windows Docker上运行Node Red?

经过多次搜索,我找到了答案。该端口正由Hyper-V保留,因此您需要将其删除,将该端口添加到排除列表,然后读取Hyper-V

我的解决方案基于以下答案:

这是Windows上的一个已知问题,有一些解决方法可用

您可以使用此注册表项阻止HN以保留高端端口:

reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f
然后重新启动


有关更多详细信息,请检查此项。

如果保留了特定端口,则不需要在该端口上运行node red

试着这样做:

docker run -dit -p 8880:1880 --name mynodered nodered/node-red
然后导航到:


我不喜欢禁用/启用hyperv,因为如果您像删除VM等一样使用它,可能会产生一些副作用。通常,需要重新启动才能正常工作。