【Docker】手把手教你使用Docker安装kafka【详细教程】

打印 上一主题 下一主题

主题 693|帖子 693|积分 2079

目次
前提条件
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
  

1.1运行ZooKeeper容器

使用以下下令运行一个ZooKeeper的Docker容器:
   docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper
  

这个下令会启动一个名为“zookeeper”的Docker容器,并且映射它的2181端口到你的机器的2181端口。
2.运行Kafka容器

接下来,你需要运行Kafka的Docker容器,并且配置它连接到你刚刚启动的ZooKeeper实例。如果你还没有Kafka的Docker镜像,你可以使用如下下令拉取:
   docker pull wurstmeister/kafka
  

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
  

这里,我们链接了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
  

注意:可能出现报错:Error response from daemon: Container 62b9c056c0aa9d6ba917690abae1c6fe16c750a96fe428cdaa43f4c692a146ca is not running
说明kafka并没有运行。

怎样解决呢?
3.2查看容器状态

首先,你可以使用以下下令查看所有Docker容器的状态,确认容器是否确实停止了:
   docker ps -a
  

在列表中找到你的容器(在这个例子中是名为zookeeper大概kafka的容器),查看它的“STATUS”字段。如果容器已经停止,状态会表现为“Exited”。
3.3查看容器日志

为了找出为什么容器停止运行,你可以查看容器的日志:
   docker logs 62b9c056c0aa
  

(这里的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
  

执行创建生产者下令:
   kafka-console-producer.sh --broker-list localhost:9092 --topic test
  然后你可以输入一些消息(比如输入hell按下enter)。

在另一个终端窗口中,创建一个消费者来读取测试主题的消息(也需要进入kafka容器哈),执行创建消费者下令:
   kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
  

如果齐备设置正确,你应该能在消费者终端中看到你在生产者终端输入的消息。  

这就完成了使用Docker运行ZooKeeper和Kafka,并进行根本验证的过程。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表