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 容器是否正常运行并相互通信。

相关推荐
阿里巴巴P8资深技术专家1 小时前
docker容器启动报错
运维·docker·容器
元气满满-樱4 小时前
docker网络模式详解
网络·docker·容器
空中楼阁,梦幻泡影5 小时前
Docker安装MinIO
运维·docker·容器·minio·存储
Selegant6 小时前
Docker 搭建 MySQL 主从服务实战操作详解
mysql·docker·容器
嗑瓜子儿溜茶水儿9 小时前
docker 部署 kkfileview ; arm64; ky10;
java·docker
九思x10 小时前
通过docker-compose.yml文件一次性安装mysql、minio、redis服务
运维·docker·容器
编程小Y10 小时前
Docker常见问题
docker
scx_link11 小时前
使用docker安装ollama及ollama拉取模型的总结
运维·docker·容器·ollama
Warren9811 小时前
面试和投简历闲聊
网络·学习·docker·面试·职场和发展·eureka·ansible
传奇吉他手千早爱音11 小时前
怎么解决无法拉取Docker镜像?不如我们自己建一个加速站(
docker