Can';t在windows 10上运行docker-端口不可用

Can';t在windows 10上运行docker-端口不可用,docker,Docker,我试图在windows 10 pro工作站上运行docker映像,但出现以下错误: docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 我正在运行以下命令: docker run -d -p 80:8

我试图在windows 10 pro工作站上运行docker映像,但出现以下错误:

docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
我正在运行以下命令:

docker run -d -p 80:80 docker/getting-started
并得到回复:

Unable to find image 'docker/getting-started:latest' locally
latest: Pulling from docker/getting-started
188c0c94c7c5: Pull complete
617561f33ec6: Pull complete
7d856acdaa9c: Pull complete
a0d3c6e28e6d: Pull complete
af69a9b963c8: Pull complete
0739f3815ad8: Pull complete
7c7b75d0baf8: Pull complete
Digest: sha256:b821569034e3b5fae03b40e64a866017067f3bf17effe185b782bdbf02179528
Status: Downloaded newer image for docker/getting-started:latest
7907f6de2b55cc2d66b5ed3a642ac1a97e5bb5ecda5fcf76ff60d7236e8fd32d
docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
我已尝试完全卸载McAfee AntiVirus并关闭本地windows防火墙

我有路由器级别的保护,但我不确定这是问题的根源,我宁愿不禁用它,因为它会影响我的整个家庭网络


如何运行docker并克服此问题?

端口80上有人监听:

Get Process-Id(Get nettcpcconnection-LocalPort 80)。OwningProcess处理NPM(K)PM(K)WS(K)CPU Id SI ProcessName--------------------6046 0 212 6668 4 0

Telnet也证实了这一点。看起来只是更改了端口才允许它工作

docker run -d -p 81:81 docker/getting-started 5a0b1202f48ef63c06d75c2f26be2a05f29aa84fe2fbdc5b66f989aa86df98f

在我的例子中,任务管理器显示一个系统进程正在占用端口80

当我深入研究时,我发现一个与端口80相关的svchost.exe,它基于万维网服务


因此,只需打开服务列表并停止万维网服务,然后一切都会正常,服务名称可能不同,但应包括关键字:万维网

当我遇到此错误时,端口上没有任何正在侦听的内容。但是,下面的命令显示端口已被其他对象保留

netsh interface ipv4 show excludedportrange protocol=tcp

有关更多详细信息,请参阅。重新启动为我解决了这个问题。

您是否以高权限运行docker守护程序?范围
0-1023
中的端口可能是为具有这些端口的端口保留的。我尝试从admin powershell会话运行,并得到相同的响应:
docker run-d-p 80:80 docker/getting started 020b673b3b3b3d48fb21fb3d27a84d9341ef5fd936c66671ad662025623859ef804e6 docker:守护程序的错误响应:端口不可用:侦听tcp0.0.0.0:80:绑定:试图以访问权限所禁止的方式访问套接字。
运行
docker
命令不会有任何区别,因为这是客户端CLI工具。您需要运行docker daemon提升版,因此实际的docker应用程序而不是CLI客户端。好的,我如何才能做到这一点?奇怪的是,这应该是docker的默认行为。。。尝试以下操作:如果没有正在运行的容器,请使用时钟旁边的docker托盘图标完全停止docker。然后,当再次使用“开始”菜单中的常规图标或类似图标运行docker时,请将其提升运行。