Docker 安装 Zookeeper + Kafka 保姆级教程

1.创建 docker-compose.yml

创建一个名为 docker-compose.yml 的文件,并添加以下内容:

bash 复制代码
version: '3.6'

services:
  zookeeper:
    image: zookeeper:3.6
    container_name: zookeeper
    ports:
      - "2181:2181"
    networks:
      - kafka-network
    environment:
      ZOO_STANDALONE_ENABLED: "true"

  kafka:
    image: bitnami/kafka:3.6
    container_name: kafka
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093
      KAFKA_LISTENER_NAME: INSIDE
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
    networks:
      - kafka-network

networks:
  kafka-network:
    driver: bridge

2.启动服务

运行以下命令来启动 Zookeeper 和 Kafka 服务:

bash 复制代码
docker compose -f docker-compose.yml up -d

此处会拉取镜像 耐心等待...

3.验证

3.1检查 Zookeeper 和 Kafka 容器是否正常运行:

bash 复制代码
docker ps

3.2通过 docker-compose logs 查看服务的日志,确保没有错误:

bash 复制代码
docker compose logs

3.3使用 docker exec 进入容器,并测试它们之间的连接:

bash 复制代码
docker exec -it kafka bash
curl http://zookeeper:2181
bash 复制代码
docker exec -it zookeeper bash
curl http://kafka:9092

4.测试数据

bash 复制代码
docker exec -it kafka bash

在Kafka容器创建主题:

bash 复制代码
kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092

执行创建生产者命令:

bash 复制代码
kafka-console-producer.sh --broker-list localhost:9092 --topic test

在新的终端窗口中 再次进入Kafka容器 执行创建消费者命令:

bash 复制代码
docker exec -it kafka bash
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

如看到消息 代表成功

相关推荐
岁岁种桃花儿5 小时前
Kafka从入门到上天系列第三篇:基础架构推演+基础组件图形推演
分布式·kafka
Hello.Reader12 小时前
Flink ZooKeeper HA 实战原理、必配项、Kerberos、安全与稳定性调优
安全·zookeeper·flink
金刚猿13 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong14 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿14 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
ask_baidu16 小时前
KafkaUtils
kafka·bigdata
洛豳枭薰18 小时前
消息队列关键问题描述
kafka·rabbitmq·rocketmq
70asunflower18 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
lucky670718 小时前
Spring Boot集成Kafka:最佳实践与详细指南
spring boot·kafka·linq