我知道之前可能会问过这个问题。但是我在过去的2个小时里一直在努力。
我正在关注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)
但是,我不明白我如何释放这个端口,或者取消分配它?我甚至需要这样做吗?
非常感谢帮助。
答案 0 :(得分:1)
这是一个泊坞窗错误 - 您无法映射容器的端口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