启动userland代理时出错:绑定0.0.0.0:80:意外错误权限被拒绝

Alz*_*Alz 59 docker windows-10

我在Windows 10 Pro下运行最新的Docker CE,17.09,并使用两个不同的示例获得Permission denied.

Docker站点示例: docker run -d -p 80:80 --name webserver nginx

AWS站点Docker示例: docker run -p 80:80 hello-world

两者都返回了同样的错误.

docker:来自守护程序的错误响应:驱动程序在端点XXXXX上编程外部连接失败:启动userland代理时出错:绑定0.0.0.0:80:意外错误权限被拒绝.

Alz*_*Alz 59

我在Windows 10 Pro上解决了我的问题,原来我以某种方式打开了万维网发布服务.花了一段时间才发现,经过注意netstat -a -n,我有一个:80听众某处/不知何故.傻我.关闭它,我对端口80很好.

  • 在我的情况下,我使用`netstat -a -n -o`来获取PID,结果是`System`.决定公开一个不同的端口 (4认同)
  • 要杀死这些端口,请使用GUi Utility,http://www.nirsoft.net/utils/cports.html (2认同)

小智 31

使用以下命令更改端口,如下所示:

docker container ls //show the container infos, note the ports info.

docker stop webserver

docker rm webserver  //shut down currently webserver

docker run -d -p 8080:80 --name webserver nginx (or 8000:80)
Run Code Online (Sandbox Code Playgroud)

最后,让我们输入localhost:8080来显示浏览器中的连接是否成功.

在此输入图像描述


tru*_*512 14

问题是一般用途的港口一样80,443,22,.(一般港口< 1024)是系统保护的,所以你需要的权限来使用它们,这将是足以成为系统管理员和执行命令作为管理员.

如果不必:80尝试使用其他端口,例如:8080,如果这没有帮助并且错误没有改变,则问题会更深入.

  • 作为管理员执行命令对Windows 10专业版没有帮助.尝试了cmd shell和PowerShell. (2认同)

Oks*_*niv 11

在macOS Mojave Version 10.14.2上,这个命令对我有用:

sudo apachectl stop
Run Code Online (Sandbox Code Playgroud)

在执行此命令之前,请运行

sudo lsof -i -P | grep “LISTEN"
Run Code Online (Sandbox Code Playgroud)

并检查是否 httpd是侦听器的标识符,:80例如:

第二行是端口上的httpd监听器:80

如果是,那么它实际上是导致问题的Mac apache.

  • @GeorgeStocker,是的,您是对的。但是由于这个问题使我找到了解决问题的方法(与其他OS相同),因此我决定对有类似问题的人可能会有帮助。 (2认同)

cmp*_*kle 6

您应该采取的第一步操作是运行以下命令:

netstat -aon | findstr [port#]

这将告诉您进程是否在给定的端口上运行。如果是这种情况,则可以使用以下命令终止该进程:

taskkill /PID [PID] /F

这将终止使用该端口的进程。然后,您将能够将新进程绑定到端口。

我还遇到过一个时间,当我netstat -aon没有返回某个进程正在为我要使用的端口运行时,但是确实有一个正在运行的进程正在不允许我在该端口上运行一个新进程。我可以通过以下方法解决此问题:

通过网络以安全模式启动Windows

在powershell / cmd中运行命令:

netsh int ipv4 add excludedportrange protocol=tcp startport=[PORT] numberofports=1

这将保留该端口,因此,当您引导回到正常的Windows模式时,没有应用程序会盗用该端口,然后才能使用它。


lad*_*kie 5

我收到此错误的原因是因为该端口已在使用中。更改为其他端口,我不再收到此错误。