在 mac 上为 zookeeper 释放一个端口

Deallocate a port on mac for zookeeper

我知道之前可能有人问过这个问题。但是我已经为此苦苦挣扎了两个小时。

我正在学习有关 apache kafka 的教程并尝试将此命令运行 发送到 运行 一个 docker 容器:

docker run --rm -p 2181:2181 -p 3030:3030 -p 8081-8083:8081-8083 -p 9581-9585:9581-9585 -p 9092:9092 -e ADV_HOST=192.168.99.100            landoop/fast-data-dev:latest

但是我收到了这个错误:

ocker: Error response from daemon: driver failed programming external connectivity on endpoint friendly_austin
 (7fe43e4a4081d4ac072a8fbb9582b9456eb71e488fe9a21c358a916061709005): Error starting userland proxy: Bind for 0.0.0.0:2181 failed: port is already allocated.

我知道这与分配的端口 2181 有关。

所以我运行

lsof -i TCP:2181

我得到了以下 pid:

COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    79831 omkar   27u  IPv6 0xa390d90220637c69      0t0  TCP *:eforward (LISTEN)

但是,我不明白如何释放或解除分配此端口?我什至需要这样做吗?

非常感谢您的帮助。

这是一个 docker 错误 - 您无法映射容器的端口 2181,因为您的主机已经在使用它

只需修改此绑定:

docker run --rm -p 2182:2181 -p 3030:3030 -p 8081-8083:8081-8083 -p 9581-9585:9581-9585 -p 9092:9092 -e ADV_HOST=192.168.99.100            landoop/fast-data-dev:latest

注意 -p 2182:2181

我这里用的是2182,你可以换一个 如果你需要使用 zookeeper 地址,可以通过 :2182