端口不可用: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
您可以使用上述票证中提到的解决方案。
-
禁用 hyper-v(这将需要重新启动几次)
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V -
完成所有必需的重新启动后,保留您想要的端口,以便 hyper-v 不会保留它
netsh int ipv4 add excludedportrange protocol=tcp startport=50070 numberofports=1 -
重新启用 hyper-V(这将需要重新启动几次)
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
回答
我这样做是为了停止 tcp 进程 =>
- 净停止赢
- 净启动winnat
这样,忙端口操作就结束了。
这对我有用。
THE END
二维码