当我试图使用以下命令运行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防火墙中打开端口,但这仍然出错。
有没有其他方法可以在Windows Docker上用1880端口运行Node Red?
这是Windows上的一个已知问题,有一些可用的变通方法。
你可以通过这个注册表键来阻止HNS保留高端口。
reg add HKLM\SYSTEM\CurrentControlSet\Services\hns\State /v EnableExcludedPortRange /d 0 /f
然后重新启动.
更多细节,你可以查看 github问题.
经过一番搜索,我找到了答案。这个端口被Hyper-V保留了,所以你需要把它删除,把端口添加到排除列表中,然后readd Hyper-V。
我的解决方案就是基于这个答案。https:/stackoverflow.coma590442463866585
如果这个端口是保留的,你就不需要在这个端口上运行node-red。
试试这样的方法。
docker run -dit -p 8880:1880 --name mynodered nodered/node-red
然后导航到: