在 Windows 10 中使用 Docker - 对于 HDP,我执行了 'sh docker-deploy-hdp30.sh' 但收到端口 50079 错误

Using Docker in Windows 10 - For HDP I executed 'sh docker-deploy-hdp30.sh' but received a port 50079 error

我在 Windows 10 中使用 Docker(使用最新版本的 Docker 桌面 - 也是 Docker 的初学者)。我下载了 [=] 的最新 HDP 27=],解压缩文件夹并执行脚本 'sh docker-deploy-hdp30.sh' in Git Bash 我收到端口 50079 的错误,如下面的屏幕截图所示。我没有其他容器,只有这个。端口 50079 没有活动连接。

虽然出现了上面提到的这个端口错误,但是我可以启动HDP容器(如下图),我可以访问shell(甚至运行 Apache Pig),但是我无法访问通过 Google Chrome 浏览器端口 8080 和 1080 等(我检查了 Edge 和 Firefox,但效果不佳)。例如,当我键入 127.0.0.1:8080 时,它说连接被拒绝。此外,我无法在 Docker 中启动 sandbox-proxy。请你帮我解决端口问题。

如果你有docker error response from daemon ports are not available ... An attempt was made to access a socket in a way forbidden by its access permissions错误,你应该先执行netsh interface ipv4 show excludedportrange protocol=tcp并检查你想要的端口是否在其中一个范围内。如果在范围内,Docker for Windows 和 Hyper-V 负责上述所有排除的端口范围。

Base of this 也许下面的命令可以解决您的问题。对于第 1 步和第 3 步,您需要 运行 在 PowerShell 中以管理员身份执行此操作。

1-Disable hyper-v with this command(which will required a couple of restarts)
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

2-When you finish all the required restarts, reserve the port you want so hyper-v doesn't reserve it back
netsh int ipv4 add excludedportrange protocol=tcp startport=50079 numberofports=1

3-Re-Enable hyper-V (which will require a couple of restart)
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

在所有重新启动后 运行 你的命令和你的容器可能会工作。