【Docker】手把手教你使用Docker安装kafka【详细教程】
目次前提条件
1.安装Zookeeper
1.1运行ZooKeeper容器
2.运行Kafka容器
2.1启动Kafka容器
3.验证
3.1进入Kafka容器
3.2查看容器状态
3.3查看容器日志
3.4重新启动容器
3.5创建测试主题
前提条件
1. 安装Docker: 确保你已经在你的Windows机器上安装了Docker。你可以从Docker官方网站下载并安装Docker Desktop。
2. 启动Docker: 确保Docker正在运行。
3. 安装docker的教程:window11安装docker小白教程_win11安装docker-CSDN博客
安装kafka之前需要先安装Zookeeper,
1.安装Zookeeper
docker pull wurstmeister/zookeeper
https://img-blog.csdnimg.cn/46441d4ead044e5e809efa1d615f0794.png
1.1运行ZooKeeper容器
使用以下下令运行一个ZooKeeper的Docker容器:
docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper
https://img-blog.csdnimg.cn/20966d0bfbf3472988126cd0966021e0.png
这个下令会启动一个名为“zookeeper”的Docker容器,并且映射它的2181端口到你的机器的2181端口。
2.运行Kafka容器
接下来,你需要运行Kafka的Docker容器,并且配置它连接到你刚刚启动的ZooKeeper实例。如果你还没有Kafka的Docker镜像,你可以使用如下下令拉取:
docker pull wurstmeister/kafka
https://img-blog.csdnimg.cn/0ea0e16a11ec47f7aa73e2494b2a3f19.png
2.1启动Kafka容器
docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 --env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 wurstmeister/kafka
https://img-blog.csdnimg.cn/c7098d09d2e847969a0de2aa1922170c.png
这里,我们链接了ZooKeeper容器,并且设置了几个情况变量来配置Kafka。
在这个下令中:
[*] --name kafka: 设置容器的名字为“kafka”。
[*] -p 9092:9092: 将容器的9092端口映射到宿主机的9092端口。
[*] --link zookeeper:zookeeper: 连接到名为“zookeeper”的另一个Docker容器,并且在当前的容器中可以通过zookeeper这个别名来访问它。
[*] --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181: 设置情况变量,指定ZooKeeper的连接字符串。
[*] --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092: 设置情况变量,指定Kafka的advertised listeners。
[*] --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 设置情况变量,指定Kafka的listeners。
[*] --env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1: 设置情况变量,指定offsets topic的副本因子。
[*] wurstmeister/kafka: 使用的Docker镜像名字。
确保在运行这个下令之前ZooKeeper容器已经在运行,并且可以通过zookeeper:2181来访问。如果你的ZooKeeper容器有一个差别的名字大概你使用的是差别的网络设置,你需要相应地调解--link和KAFKA_ZOOKEEPER_CONNECT的值。
3.验证
为了验证Kafka是否正常运行,你可以进入Kafka容器并使用Kafka的下令行工具。例如:
3.1进入Kafka容器
docker exec -it kafka /bin/bash
https://img-blog.csdnimg.cn/89276c8bbb7141c3a207463af4dbe94e.jpeg
注意:可能出现报错:Error response from daemon: Container 62b9c056c0aa9d6ba917690abae1c6fe16c750a96fe428cdaa43f4c692a146ca is not running
说明kafka并没有运行。
https://img-blog.csdnimg.cn/9074b6cd74cc4c12b8eb308e761285f5.png
怎样解决呢?
3.2查看容器状态
首先,你可以使用以下下令查看所有Docker容器的状态,确认容器是否确实停止了:
docker ps -a
https://img-blog.csdnimg.cn/8d63e21429eb4ba2808244dda8fd330c.png
在列表中找到你的容器(在这个例子中是名为zookeeper大概kafka的容器),查看它的“STATUS”字段。如果容器已经停止,状态会表现为“Exited”。
3.3查看容器日志
为了找出为什么容器停止运行,你可以查看容器的日志:
docker logs 62b9c056c0aa
https://img-blog.csdnimg.cn/fe8e9a573cc64ce098671865e91a9e68.png
(这里的62b9c056c0aa是你容器的ID的前几个字符,你可以从docker ps -a的输出中找到完备的容器ID。)
查看日志输出,尤其是末端的部门,通常可以找到导致容器停止的错误信息大概提示。
3.4重新启动容器
如果你找到了导致题目的缘故原由,并且已经解决了,你可以尝试重新启动容器:
docker start 62b9c056c0aa
3.5创建测试主题
在Kafka容器中,运行以下下令创建一个测试主题:
kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --zookeeper zookeeper:2181
https://img-blog.csdnimg.cn/b028b55ba25f423a90c87a9e6b3f4509.jpeg
执行创建生产者下令:
kafka-console-producer.sh --broker-list localhost:9092 --topic test
然后你可以输入一些消息(比如输入hell按下enter)。
https://img-blog.csdnimg.cn/f54de37f9bec4f4182c3a9416ead310b.jpeg
在另一个终端窗口中,创建一个消费者来读取测试主题的消息(也需要进入kafka容器哈),执行创建消费者下令:
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
https://img-blog.csdnimg.cn/7b90c19de5b3426489b7586641924812.png
如果齐备设置正确,你应该能在消费者终端中看到你在生产者终端输入的消息。
https://img-blog.csdnimg.cn/65c8d37646cf4a0da5e4be4b5554fb7a.png
这就完成了使用Docker运行ZooKeeper和Kafka,并进行根本验证的过程。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]