1 准备工作
1.1 安装Docker和Docker Compose
Docker安装请参考:
Docker入门指南:1分钟搞定安装 + 常用命令,轻松入门容器化!-CSDN博客
Docker Compose安装请参考:
【docker compose入门指南】安装与常用命令参数全解析,助你入门compose!_docker composer-CSDN博客
2 编写Docker Compose文件
# 创建目录并编写docker-compose.yml
cd /export/home
mkdir kafka_docker
cd kafka_docker
cat >docker-compose.yml<
3 拉取镜像并启动服务
3.1 拉取镜像
# 手动拉取镜像
docker pull bitnami/zookeeper:3.8
docker pull bitnami/kafka:3.6
[root@node1 ~]# docker pull bitnami/zookeeper:3.8
3.8: Pulling from bitnami/zookeeper
4bb5b9792f2b: Downloading [=================> ] 101.2MB/297.1MB
4bb5b9792f2b: Downloading [============================================> ] 265.1MB/297.1MB
4bb5b9792f2b: Extracting [===============================================> ] 281.9MB/297.1MB
4bb5b9792f2b: Pull complete
Digest: sha256:4d450d4b1dab610e1012993d2ea78ba00a516b63e74214a57fef40c060ce4986
Status: Downloaded newer image for bitnami/zookeeper:3.8
docker.io/bitnami/zookeeper:3.8
[root@node1 ~]#
[root@node1 kafka_docker]# docker pull bitnami/kafka:3.6
3.6: Pulling from bitnami/kafka
43ffa9935816: Downloading [================> ] 126.2MB/379.1MB
43ffa9935816: Downloading [========================================> ] 309.9MB/379.1MB
43ffa9935816: Extracting [===========================================> ] 327MB/379.1MB
43ffa9935816: Pull complete
Digest: sha256:287cec8bf1b254efe016ec66ea77628e31f242b09f3c68a15eec74d93c21a410
Status: Downloaded newer image for bitnami/kafka:3.6
docker.io/bitnami/kafka:3.6
[root@node1 kafka_docker]#
3.2 启动服务
# 创建持久化目录
mkdir -p ./data/zookeeper ./data/kafka
# 启动服务(后台运行)
docker-compose up -d
# 查看容器状态
docker ps -a
[root@node1 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0762029c4aa bitnami/kafka:3.6 "/opt/bitnami/script…" 25 seconds ago Up 23 seconds 0.0.0.0:9092->9092/tcp, :::9092->9092/tcp kafka
d821a448f5b2 bitnami/zookeeper:3.8 "/opt/bitnami/script…" 2 minutes ago Up 24 seconds 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp zookeeper
[root@node1 ~]#
4 验证Kafka功能
4.1 创建Topic
docker exec -it kafka
bash -c "kafka-topics.sh --create --bootstrap-server 192.168.10.30:9092 --replication-factor 1 --partitions 3 --topic test-topic"
[root@node1 ~]# docker exec -it kafka
> bash -c "kafka-topics.sh --create --bootstrap-server 192.168.10.30:9092 --replication-factor 1 --partitions 3 --topic test-topic"
> bash -c "kafka-topics.sh --create --bootstrap-server 192.168.10.30:9092 --replication-factor 1 --partitions 3 --topic test-topic"
Created topic test-topic.
[root@node1 ~]#
4.2 生产消息
docker exec -it kafka
bash -c "kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic"
# 输入任意消息后按 Ctrl+C 退出
[root@node1 ~]# docker exec -it kafka
> bash -c "kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic"
>test1
>test2
>test3
>^C[root@node1 ~]#
4.3 消费消息
docker exec -it kafka
bash -c "kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning"
>^C[root@node1 ~]# docker exec -it kafka
> bash -c "kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning"
test1
test2
test3
5 总结
通过上述步骤,您已成功部署了一个包含 ZooKeeper、Kafka单机环境。此方案适用于:
- 开发测试:快速验证消息队列功能
- 本地学习:理解 Kafka 核心机制
- 原型验证:模拟生产环境行为