Docker环境 运行Kafka容器失败

网上docker 安装kafka环境教程大多数会采用下面命令

docker run  -d --name kafka -p 9092:9092 \
-e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.xxx.xxx.xxx:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.xxx.xxx.xxx:9092 -e \
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t bitnami/kafka:2.7.0
  • –name=“容器新名字” 为容器指定一个名称;

  • -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);

  • -p: 指定端口映射,小写p

启动kafka容器时发现容器并没有正常启动,通过查看日志发现提示:

  • 查看日志命令
docker logs kafka
  • 日志错误提示
INFO  ==> ** Starting Kafka setup **
 15:04:41.47 ERROR ==> The KAFKA_CFG_LISTENERS environment variable does not configure a secure listener. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.
 15:04:41.48 ERROR ==> The KAFKA_ZOOKEEPER_PROTOCOL environment variable does not configure a secure protocol. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.

在这里插入图片描述
这是因为在启动容器时没有指定环境变量ALLOW_PLAINTEXT_LISTENER 允许使用PLAINTEXT侦听器。

启动命令时加上指定环境变量

-e ALLOW_PLAINTEXT_LISTENER=yes
docker run  -d --name kafka -p 9092:9092 \
-e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.xxx.xxx.xxx:2181 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.xxx.xxx.xxx:9092 -e \
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t bitnami/kafka:2.7.0

成功:
在这里插入图片描述

### 回答1: 当Docker启动Kafka后自动退出的问题通常有以下几种可能原因: 1. 端口冲突:如果在启动Docker容器时,Kafka所使用的端口已被其他进程占用,Docker会自动退出。可以通过查看Docker容器日志或检查宿主机上的端口占用情况来确定是否存在端口冲突问题。 2. 资源限制:Kafka是一个较为资源密集型的应用,如果Docker容器所配置的资源(如内存和CPU等)不足以支持Kafka运行Docker会因资源限制而退出。可以尝试增加Docker容器的资源限制,并重新启动容器。 3. 配置错误:Kafka的配置文件可能存在错误导致启动失败。可以检查Kafka的配置文件,查看是否有错误的配置项或配置项值是否合法。可以通过尝试使用默认配置文件或重新编写配置文件来解决配置错误导致的启动问题。 4. 日志输出:启动Kafka时,Docker可能会将Kafka的日志输出到标准输出,而不是保存到文件中。如果未设置适当的配置或重定向日志输出,Docker会在Kafka启动后立即退出。可以通过查看Docker容器日志输出来确认是否存在此问题。 综上所述,当Docker启动Kafka后自动退出时,需要注意检查端口冲突、资源限制、配置错误和日志输出等问题,以确定具体原因并采取相应的解决方案。 ### 回答2: Docker 是一种轻量级的容器化平台,Kafka 是一个分布式流处理平台,可以处理大规模的实时数据流。在使用 Docker 启动 Kafka 过程中,可能会遇到一些问题导致自动退出的情况。下面是一些可能导致 Docker 启动 Kafka 自动退出的原因以及对应的解决方法: 1. 端口冲突:Kafka 默认使用 9092 端口进行通信,如果这个端口被其他进程占用,可能会导致 Docker 容器无法启动。解决方法是通过修改 Docker 容器Kafka 的监听端口,可以用其他未被占用的端口替代。 2. 配置错误:Kafka 的配置文件可能存在错误,导致无法正常启动。解决方法是检查配置文件中的参数是否正确,并确保配置文件的格式没有问题。 3. 内存不足:Kafka 需要较大的内存空间来保存数据和处理消息,如果 Docker 容器分配的内存不足,可能会导致启动失败。解决方法是增加 Docker 容器的内存分配,确保足够的内存供 Kafka 使用。 4. 硬盘空间不足:Kafka运行过程中会生成大量的日志文件和数据文件,如果 Docker 容器的硬盘空间不足,可能会导致无法启动。解决方法是释放一些硬盘空间,或者扩容 Docker 容器的硬盘大小。 5. 镜像问题:Docker 容器启动 Kafka 时使用的镜像可能存在问题,如版本不适配或者镜像本身存在 bug,可以尝试使用其他版本的镜像或者下载更新的镜像。 6. 其他错误:还有一些其他的错误可能导致 Docker 容器无法启动 Kafka,如网络连接问题、权限问题等。解决方法是逐一排查错误,并根据具体情况进行相应的修复。 总结来说,导致 Docker 启动 Kafka 自动退出的原因可能有很多,解决的方法也因具体原因而异。在解决问题时,需要仔细分析错误日志,逐步排查原因,并尝试不同的解决方法,直到成功启动 Kafka
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值