docker部署简单的Kafka

文章目录

  • [1. 拉取镜像](#1. 拉取镜像)
  • [2. 运行](#2. 运行)
      • 创建网络
      • [运行 ZooKeeper 容器](#运行 ZooKeeper 容器)
      • [运行 Kafka 容器](#运行 Kafka 容器)
  • [3. 简单的校验](#3. 简单的校验)
      • [1. 检查容器状态](#1. 检查容器状态)
      • [2. 检查 ZooKeeper 日志](#2. 检查 ZooKeeper 日志)
      • [3. 检查 Kafka 日志](#3. 检查 Kafka 日志)
      • [4. 使用 Kafka 命令行工具检查](#4. 使用 Kafka 命令行工具检查)
      • [5. 创建和删除测试主题](#5. 创建和删除测试主题)

1. 拉取镜像

选择一组兼容性好的版本。

复制代码
docker pull bitnami/kafka:3.6.1
docker pull bitnami/zookeeper:3.8.2

2. 运行

创建网络

首先,创建一个名为 kafka 的 Docker bridge 网络:

复制代码
docker network create kafka

运行 ZooKeeper 容器

然后,运行 ZooKeeper 容器并将其连接到 kafka 网络:

复制代码
docker run -d --name zookeeper --network kafka -e ALLOW_ANONYMOUS_LOGIN=yes bitnami/zookeeper:3.8.2

运行 Kafka 容器

最后,运行 Kafka 容器并将其连接到 kafka 网络:

复制代码
docker run -d --name kafka --network kafka -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -p 9092:9092 bitnami/kafka:3.6.1

这些命令将使 ZooKeeper 和 Kafka 容器在同一个 Docker 网络中运行,并确保它们可以相互通信。

3. 简单的校验

要判断 ZooKeeper 和 Kafka 容器是否正常运行,可以通过以下几个步骤进行检查:

1. 检查容器状态

首先,检查 ZooKeeper 和 Kafka 容器是否正在运行:

复制代码
docker ps

输出应包含类似以下内容:

复制代码
CONTAINER ID   IMAGE                        COMMAND                  CREATED          STATUS          PORTS                                        NAMES
<zookeeper_id> bitnami/zookeeper:3.8.2      "/opt/bitnami/script..."   <some_time_ago>  Up <some_time>  2181/tcp                                     zookeeper
<kafka_id>     bitnami/kafka:3.6.1          "/opt/bitnami/script..."   <some_time_ago>  Up <some_time>  0.0.0.0:9092->9092/tcp, :::9092->9092/tcp   kafka

2. 检查 ZooKeeper 日志

查看 ZooKeeper 容器的日志,以确保它已成功启动并正在运行:

复制代码
docker logs zookeeper

日志中应包含类似以下内容:

复制代码
INFO  Started AdminServer on address 0.0.0.0, port 8080
INFO  binding to port 0.0.0.0/0.0.0.0:2181

3. 检查 Kafka 日志

查看 Kafka 容器的日志,以确保它已成功连接到 ZooKeeper 并正在运行:

复制代码
docker logs kafka

日志中应包含类似以下内容:

复制代码
INFO  [KafkaServer id=1] started (kafka.server.KafkaServer)
INFO  [ZooKeeperClient] Connected. (org.apache.zookeeper.ClientCnxn)

4. 使用 Kafka 命令行工具检查

进入 Kafka 容器内部,并使用 Kafka 命令行工具检查 Kafka 和 ZooKeeper 的状态:

复制代码
docker exec -it kafka /bin/bash

# 列出 Kafka 主题
kafka-topics.sh --list --bootstrap-server kafka:9092

如果可以成功列出 Kafka 主题,则表示 Kafka 和 ZooKeeper 正常运行。

5. 创建和删除测试主题

可以尝试创建一个测试主题,并查看是否成功:

复制代码
# 创建一个名为 test-topic 的主题
kafka-topics.sh --create --topic test-topic --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092

# 列出所有主题,确认 test-topic 是否存在
kafka-topics.sh --list --bootstrap-server kafka:9092

# 删除 test-topic 主题
kafka-topics.sh --delete --topic test-topic --bootstrap-server kafka:9092

通过以上步骤,可以确认 ZooKeeper 和 Kafka 容器是否正常运行并相互通信。

相关推荐
亚林瓜子26 分钟前
docker compose方式安装ClickHouse数据库
数据库·clickhouse·docker·mac·m1
开发小能手-roy39 分钟前
在Ubuntu服务器上安装Docker(支持Ubuntu 20.04/22.04等版本):
linux·ubuntu·docker
细心的莽夫1 小时前
Docker学习笔记
运维·笔记·后端·学习·docker·容器
敏君宝爸2 小时前
kafka 配置SASL认证
分布式·kafka
诗句藏于尽头2 小时前
BT面板docker搭建excalidraw遇到的问题
运维·docker·容器
斯普信云原生组2 小时前
kafka消费延迟
分布式·kafka
弧襪3 小时前
解决 Docker Swarm 集群节点故障:从问题剖析到修复实战
docker·容器
杰克逊的日记4 小时前
kafka的topic扩容分区会对topic任务有什么影响么
分布式·kafka
IT成长日记6 小时前
【Kafka基础】监控与维护:动态配置管理,灵活调整集群行为
分布式·kafka·动态配置管理
laimaxgg7 小时前
Docker命令
linux·运维·服务器·ubuntu·docker