刚刚安装了 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.
Docker 版本
Windows 版本
网络
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
关于如何解决这个问题的任何想法?
最佳答案
在端口 2181 上使用 Zookeeper 数月后,我遇到了同样的问题。我无法弄清楚为什么它不会绑定(bind)到端口 2181,因为我以管理员身份运行 netstat -aon | findstr '2181'
并且不会返回任何结果。我最终得出结论,该端口实际上已被某些进程使用,即使它没有被列出。我发现仍然使用端口 2181 的解决方案(这对我的应用程序至关重要):
以带网络连接的安全模式启动 Windows
在 powershell/cmd 中运行命令 netsh int ipv4 add excludedportrange protocol=tcp startport=2181 numberofports=1
这将保留端口 2181,因此当您启动回正常 Windows 模式时,在您可以使用它之前,没有应用程序会窃取该端口。
启动到常规窗口并启动 Zookeeper。这样就不会有绑定(bind)问题了!
关于docker - 启动用户空间代理 : Bind for 0. 0.0.0:2181 时出错:意外错误权限被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55087970/