端口不可用:listentcp0.0.0.0/50070:bind:尝试以访问权限禁止的方式访问套接字

我正在尝试使用以下命令启动 docker 容器。

docker run -it -p 50070:50070 -p 8088:8088 -p 8080:8080 suhothayan/hadoop-spark-pig-hive:2.9.2 bash

它最终出现了以下错误。

docker:来自守护进程的错误响应:端口不可用:listen tcp 0.0.0.0/50070:bind:尝试以访问权限禁止的方式访问套接字。

据我了解,由于另一个进程使用了​​端口 50070,因此发生了错误。我试图识别该进程,以便在命令提示符下使用以下命令终止该进程,但它既没有给出输出也没有给出错误。

netstat -ano | findstr :50080

回答

这个解决方案帮助了我:

net stop winnat
docker start ...
net start winnat

  • Yes, this solved my port problem.
  • Easiest solution! thanks

回答

根据 Windows https://github.com/docker/for-win/issues/3171 的Docker 问题:

您可能在命令的任何排除的端口范围中拥有该端口 netsh interface ipv4 show excludedportrange protocol=tcp

您可以使用上述票证中提到的解决方案。

  1. 禁用 hyper-v(这将需要重新启动几次)

    dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

  2. 完成所有必需的重新启动后,保留您想要的端口,以便 hyper-v 不会保留它

    netsh int ipv4 add excludedportrange protocol=tcp startport=50070 numberofports=1

  3. 重新启用 hyper-V(这将需要重新启动几次)

    dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All


回答

我这样做是为了停止 tcp 进程 =>

  • 净停止赢
  • 净启动winnat

这样,忙端口操作就结束了。

这对我有用。


以上是端口不可用:listentcp0.0.0.0/50070:bind:尝试以访问权限禁止的方式访问套接字的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>