Docker 部署bitnami/kafka 无报错信息

在尝试使用Docker部署bitnami/kafka时遇到服务启动失败的情况,起初没有报错信息。经过排查,通过添加环境变量`BITNAMI_DEBUG=true`来显示详细报错信息,成功定位并解决了问题。

1.首先安装并zookeeper镜像并启动服务

docker pull zookeeper
docker run --name zookeeper -p 2181:2181 -itd --restart=always --privileged=true wurstmeister/zookeeper

2.安装kafka镜像

docker pull bitnami/kafka

3.启动kafka服务

docker run -d --name kafka \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.223.131:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.223.131:9092 \
    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092\
    bitnami/kafka

4.发现服务启动失败且没有报错信息

5.删除服务

docker rm kafka

6.添加详细报错信息参数

-e BITNAMI_DEBUG=true  

docker run -d --name kafka \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.223.131:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.223.131:9092 \
    -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092\
    -e BITNAMI_DEBUG=true\
    bitnami/kafka

终于显示出报错信息

使用Docker Compose部署Apache Kafka集群的详细步骤如下: ### 1. 部署环境配置 选择Linux环境(如CentOS 7.6),并确保已经安装好DockerDocker Compose。以CentOS 7.6为例,可添加Docker CE的官方yum仓库,为了更快的下载速度,使用阿里云镜像源: ```bash sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ``` 安装指定版本的Docker Compose,例如2.21.0: ```bash sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ``` ### 2. 服务器信息规划 假设有三台服务器,信息如下: | ID | 规格 | IP | | --- | --- | --- | | ecs - kafka1 | centos7.6, 2vCPUs\|4GiB | 172.16.20.92 | | ecs - kafka2 | centos7.6, 2vCPUs\|4GiB | 172.16.20.207 | | ecs - kafka3 | centos7.6, 2vCPUs\|4GiB | 172.16.20.209 | ### 3. 创建docker - compose.yaml文件 有不同的配置方式,以下提供两种示例: #### 示例一 ```yaml version: '2' networks: app-tier: driver: bridge services: kafka: image: 'bitnami/kafka:3.4' container_name: kafka hostname: kafka privileged: true ports: - "9092:9092" - "9094:9094" networks: - app-tier environment: - TZ=Asia/Shanghai - KAFKA_KRAFT_CLUSTER_ID=iZWRiSqjZAlYwlKEqHFQWI - KAFKA_CFG_NODE_ID=0 - KAFKA_CFG_PROCESS_ROLES=controller,broker - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094 - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://宿主机IP地址:9094 # 传递回客户端的元数据,填写宿主机IP地址 - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093 - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER - KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true ``` #### 示例二 ```yaml version: '3' networks: net: driver: bridge services: kafka1: restart: always image: wurstmeister/kafka:2.13_2.8.1 container_name: kafka1 hostname: kafka1 ports: - '9092:9092' environment: - KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2182,zookeeper3:2183/kafka - KAFKA_BROKER_ID=1 - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://182.92.152.225:9092 - ALLOW_PLAINTEXT_LISTENER=yes - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=3 - KAFKA_NUM_PARTITIONS=1 volumes: - /etc/localtime:/etc/localtime - /home/sumengnan/apache/kafka/kafka1/data:/kafka/kafka-logs-kafka1 - /home/sumengnan/apache/kafka/kafka1/logs:/opt/kafka/logs networks: - net # 可按需添加kafka2、kafka3等节点配置 ``` ### 4. 启动Kafka集群 在包含`docker - compose.yaml`文件的目录下,执行以下命令启动Kafka集群: ```bash docker-compose up -d ``` ### 5. 验证Kafka集群 可以通过Kafka自带的命令行工具或者Kafka客户端来验证集群是否正常工作。例如,创建一个测试主题: ```bash docker exec -it kafka1 kafka-topics.sh --create --topic test_topic --bootstrap-server kafka1:9092 --partitions 1 --replication-factor 1 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值