启动用户空间代理时出错:绑定 0.0.0.0:2181:意外错误权限被拒绝

Jun*_*r M 4 docker windows-10 apache-zookeeper

刚刚安装了Docker 桌面社区,但无法启动 zookeeper。

C:\kafka>docker run --rm -d --name zookeeper --network app-tier -p 2181:2181 -p 3888:3888 zookeeper:latest
Unable to find image 'zookeeper:latest' locally
latest: Pulling from library/zookeeper
8e402f1a9c57: Pull complete
4866c822999c: Pull complete
205f26e90552: Pull complete
99243f6904c1: Pull complete
c6ac2a949410: Pull complete
7c9e37572768: Pull complete
637f41838913: Pull complete
Digest: sha256:7eb73b4f16688bdd6c6594ea3aacbaf31dacc33f7a8ab0d52a4fdc08bc4f919a
Status: Downloaded newer image for zookeeper:latest
1d96e4605efcd0836b9121be75c381195547014bb9d42ea4716c8a1b60068903
docker: Error response from daemon: driver failed programming external connectivity on endpoint zookeeper (48149ba74f7230bef95a5c98ab968498d0f965bede97ada98115384906c06300): Error starting userland proxy: Bind for 0.0.0.0:2181: unexpected error Permission denied.
Run Code Online (Sandbox Code Playgroud)

码头工人版本

  • 版本 2.0.0.3 (31259)
  • 渠道稳定
  • 构建 8858db3
  • 引擎 18.09.2

视窗版本

  • Windows 10 版本:Microsoft Windows [版本 10.0.17763.348]

网络

C:\Proyectos\kafka>docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
5ed898201a6d        app-tier            bridge              local
f0bd501b76fa        bridge              bridge              local
5c822b39b283        host                host                local
eb54047d3dc8        none                null                local
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

cmp*_*kle 6

在端口 2181 上使用 Zookeeper 数月后,我遇到了同样的问题。我无法弄清楚为什么它不会绑定到端口 2181,因为我netstat -aon | findstr '2181'以管理员身份运行并且不会返回任何结果。我最终得出结论,该端口实际上已被某些进程使用,即使它没有被列出。我发现仍然使用端口 2181 的解决方案(这对我的应用程序至关重要):

以带网络连接的安全模式启动 Windows

在 powershell/cmd 中运行命令netsh int ipv4 add excludedportrange protocol=tcp startport=2181 numberofports=1这将保留端口 2181,因此当您启动回正常 Windows 模式时,在您可以使用它之前,没有应用程序会窃取该端口。

启动到常规窗口并启动 Zookeeper。这样就不会有绑定问题了!

  • 谢谢@cmpickle!在尝试了所有这些之后:重新启动 docker,重置 docker,重新启动我的电脑,根据此评论禁用快速启动 https://github.com/docker/for-win/issues/1038#issuecomment-458440399,重新安装 docker。我几乎要放弃了。运行 netsh 命令成功了! (2认同)