首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用docker启动kafka和zookeeper;端口9092和2181已分配

无法使用docker启动kafka和zookeeper;端口9092和2181已分配
EN

Stack Overflow用户
提问于 2018-10-27 22:31:16
回答 2查看 1.9K关注 0票数 0

我正在尝试使用这个docker文件来声明kafka和zookeeper

代码语言:javascript
复制
    version: '2'

services:
  kafka:
    image: landoop/fast-data-dev:cp3.3.0
    hostname: kafka-host
    ports:
      - 29092:29092
      - 3030:3030                 # Landoop UI
      - 8081-8083:8081-8083       # REST Proxy, Schema Registry, Kafka Connect ports
      - 9581-9585:9581-9585       # JMX Ports
      - 2181:2181                 # Zookeeper
      - 9092:9092                 # Kafka Broker
    environment:
      ADV_HOST: 127.0.0.1         
      RUNTESTS: 0                 
      FORWARDLOGS: 0              
      SAMPLEDATA: 0  

但是我一直收到这个错误信息

代码语言:javascript
复制
Cannot start service kafka: b'driver failed programming external connectivity on endpoint kafka-docker_kafka_1 (a741da2d21a00bb752fc169d579fa39bcdeef0cc88ec560d2e93b8fd287b8b5a): Error starting userland proxy: Bind for 0.0.0.0:9092 failed: port is already allocated'

即使我删除了所有的图像和容器...

使用"sudo lsof -i tcp:9092

我看到一些过程正在进行..。但即使在我杀了他们之后,使用kill -9 PID也会出现一些其他的。

EN

回答 2

Stack Overflow用户

发布于 2018-10-28 05:10:53

我解决了这个问题;kafka和zookeeper实际上已经安装在本地,并且brew在后台运行它们……当我卸载它们的时候,一切都很好!

票数 1
EN

Stack Overflow用户

发布于 2018-10-27 23:36:31

您的一个容器似乎仍在使用端口9092 (如sudo lsof -i tcp:9092所示)。运行docker ps以确保没有容器在使用此端口运行。

此外,使用kill -9命令停止容器也不是正确的方法:

  • 如果您使用的是docker-compose (如您的示例所示),则可以运行docker-compose down来停止所有服务(因此停止文件中定义的所有容器)。或者,如果您只想使用docker命令关闭容器,则必须运行docker stop <container_id_or_name>,但我不建议您在使用docker-compose
  • when时发出kill -9命令,因为您可能已经在服务(https://docs.docker.com/compose/compose-file/compose-file-v2/#restart)上定义了重新启动策略,所以您会发现容器一次又一次地重启。在另一个容器退出后启动的容器(由kill -9引起)使用与前一个容器相同的端口,因此端口9092始终用于
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53022896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档