1. 拉取镜像
选择一组兼容性好的版本。
1 | docker pull bitnami/kafka:3.6.1 |
2. 运行
创建网络
首先,创建一个名为 kafka
的 Docker bridge 网络:
1 | docker network create kafka |
运行 ZooKeeper 容器
然后,运行 ZooKeeper 容器并将其连接到 kafka
网络:
1 | docker run -d --name zookeeper --network kafka -e ALLOW_ANONYMOUS_LOGIN=yes bitnami/zookeeper:3.8.2 |
运行 Kafka 容器
最后,运行 Kafka 容器并将其连接到 kafka
网络:
1 | 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 容器是否正在运行:
1 | docker ps |
输出应包含类似以下内容:
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
2. 检查 ZooKeeper 日志
查看 ZooKeeper 容器的日志,以确保它已成功启动并正在运行:
1 | docker logs zookeeper |
日志中应包含类似以下内容:
1 | INFO Started AdminServer on address 0.0.0.0, port 8080 |
3. 检查 Kafka 日志
查看 Kafka 容器的日志,以确保它已成功连接到 ZooKeeper 并正在运行:
1 | docker logs kafka |
日志中应包含类似以下内容:
1 | INFO [KafkaServer id=1] started (kafka.server.KafkaServer) |
4. 使用 Kafka 命令行工具检查
进入 Kafka 容器内部,并使用 Kafka 命令行工具检查 Kafka 和 ZooKeeper 的状态:
1 | docker exec -it kafka /bin/bash |
如果可以成功列出 Kafka 主题,则表示 Kafka 和 ZooKeeper 正常运行。
5. 创建和删除测试主题
可以尝试创建一个测试主题,并查看是否成功:
1 | # 创建一个名为 test-topic 的主题 |
通过以上步骤,可以确认 ZooKeeper 和 Kafka 容器是否正常运行并相互通信。