1.拉取镜像

在线拉取镜像

docker pull bitnami/kafka:latest

docker pull bitnami/zookeeper:latest

 

服务器无网情况下

第一步:可以找一台有网的服务器上在线拉取镜像

docker pull bitnami/kafka:latest

docker pull bitnami/zookeeper:latest

 

第二步:在有网的服务器上将镜像打包到服务器本地

docker save -o /home/Kafka.tar bitnami/kafka

docker save -o /home/zookeeper.tar  bitnami/zookeeper

 

第三步:想办法拷贝到无网的服务器/home目录下即可,然后在无网的服务器上进行拉取本地镜像

docker load -i /home/kafka.tar

docker load -i /home/zookeeper.tar

2.创建一个Docker网络使

命令:docker network create kafka-internet --driver bridge

解析:

kafka-internet

自定义的虚拟网络名称,可按照自己喜好进行设定

 

--driver bridge

Bridge驱动创建一个虚拟的网络桥接接口,并为每个容器分配一个IP地址。容器可以通过桥接接口进行通信,也可以通过主机网络进行外部通信。这使得容器能够在同一主机上相互通信,或者与外部网络进行互联。

 

创建Docker网络原因

同一网络让zookeeper容器与kafka容器之间能互相通信,Kafka使用Zookeeper来实现分布式协调和管理功能

3.启动zookeeper

第一步:创建zookeeper数据持久化目录

mkdir -p /home/zookeeper/data/

 

第二步:赋予目录权限

chmod 777 /home/zookeeper/data/

 

第三步:启动镜像

docker run -d -p 2181:2181 --name zookeeper --network kafka-internet --restart=always -e ALLOW_ANONYMOUS_LOGIN=yes -v /home/zookeeper/data:/bitnami/zookeeper/data bitnami/zookeeper:latest

 

解析:

--network kafka-internet

使用一个名称kafka-internet的Docker网络

 

--restart=always

容器跟随Docker服务启动而自启

 

-e ALLOW_ANONYMOUS_LOGIN=yes

这个语句可以允许匿名登录到Zookeeper,但我尝试去掉这个语句,会出现容器无法启动成功,查询资料有部分说是bitnami/zookeeper:latest版本包必须要匿名登录设置才能正常启动容器。

 

-v /home/zookeeper/data:/bitnami/zookeeper/data

挂载zookeeper的存储目录,持久化数据

4.启动Kafka

第一步:创建持久化目录

mkdir -p /home/kafka/data/

 

第二步:赋予目录权限

chmod 777 /home/kafka/data/

 

第三步:启动镜像

docker run -d --name kafka --network kafka-internet --restart=always -p 9092:9092 -e KAFKA_LISTENERS=PLAINTEXT://:9092 -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,SSL:SSL -e KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.10.10.1:9092 -v /home/kafka/data:/bitnami/kafka/data bitnami/kafka:latest

5.验证

第一步:进入kafka容器内部

docker exec -it kafka bash

 

第二步:创建一个叫test-topic主题

kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test-topic 

 

第三步:发布信息

echo "Hello, Kafka!" | kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic
 

第四步:消费信息

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning
 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐