03-Kafka Docker Compose 部署与版本说明

玄武2026-03-06字数:717阅读:约 3 分钟kafkaKafka中间件

Kafka Docker Compose 部署与版本说明

创建时间:2026-02-27


一、Docker Compose 脚本逐行解析

version: '3.8'          # Docker Compose 文件格式版本(固定写法,与 Kafka 无关)
services:

zookeeper 服务

  zookeeper:
    image: confluentinc/cp-zookeeper:7.5.0   # Confluent 打包的 ZooKeeper 镜像
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181             # ZooKeeper 对外暴露的端口(Kafka 用来连接它)
    ports:
      - "2181:2181"                           # 宿主机:容器端口映射

kafka 服务

  kafka:
    image: confluentinc/cp-kafka:7.5.0       # Confluent 打包的 Kafka 镜像
    depends_on:
      - zookeeper                             # 必须等 ZooKeeper 启动后才启动 Kafka
    ports:
      - "9092:9092"                           # Kafka 默认端口
    environment:
      KAFKA_BROKER_ID: 1                      # Broker 唯一标识(集群中每个节点 ID 不同)

      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # 告诉 Kafka 去哪找 ZooKeeper
                                              # "zookeeper" 是上面服务的名称,Docker 内部 DNS 自动解析

      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      # ⚠️ 重要:告诉外部客户端用哪个地址连接 Kafka
      # localhost 表示你的本机,如果是服务器部署需要换成服务器 IP

      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      # __consumer_offsets 这个内部 Topic 的副本数
      # 单节点必须设为 1,否则 Kafka 启动会报错

      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
      # 生产者发送消息时,如果 Topic 不存在,自动创建
      # 学习环境方便,生产环境建议关闭('false')

二、7.5.0 到底是什么版本的 Kafka?

镜像中的 7.5.0 是 Confluent Platform(CP)的版本号,不是 Apache Kafka 的版本号。

什么是 Confluent Platform?

Confluent 是 Kafka 创始团队离开 LinkedIn 后创办的公司,他们在 Apache Kafka 基础上做了商业封装,叫做 Confluent Platform,维护了自己独立的版本号体系。

Apache Kafka(开源,Apache 基金会维护)  ← 两套独立的版本号
Confluent Platform(商业封装,包含 Kafka + 额外工具)

版本对应关系

Confluent Platform 版本内置 Apache Kafka 版本
7.5.xKafka 3.5.x ← 本脚本使用的版本
7.4.xKafka 3.4.x
7.3.xKafka 3.3.x
7.0.xKafka 3.0.x
6.2.xKafka 2.8.x

实际运行的是 Apache Kafka 3.5.x,不是官网看到的 4.x。

关于 Kafka 4.x 的重大变化

Kafka 4.x  →  彻底移除了 ZooKeeper 依赖(使用 KRaft 模式替代)
Kafka 3.x  →  ZooKeeper 和 KRaft 都支持(过渡期)

本脚本还依赖 ZooKeeper,使用 3.5.x 是目前生产环境最主流的选择之一,完全没问题。


三、两种运行方式对比

Confluent 镜像(本脚本)纯 Apache Kafka 镜像
镜像名confluentinc/cp-kafkaapache/kafka
额外工具Schema Registry、Kafka Connect 等纯 Kafka
学习推荐✅ 够用✅ 更原汁原味

四、完整 Docker Compose 脚本

version: '3.8'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.5.0
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
    ports:
      - "2181:2181"

  kafka:
    image: confluentinc/cp-kafka:7.5.0
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'

启动命令

# 启动
docker compose up -d

# 查看运行状态
docker compose ps

# 查看 Kafka 日志
docker compose logs -f kafka

# 停止
docker compose down

总结:镜像里的 7.5.0 是 Confluent 自己的版本号,实际运行的 Kafka 内核是 3.5.x。Apache Kafka 官方最新是 4.x,两套版本号是独立体系,不要混淆。

💬 文章评论 (0)

支持 Markdown,请友善交流
正在加载评论...