问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Docker部署Kafka 2.8.1(保姆级图文教程)

创作时间:
作者:
@小白创作中心

Docker部署Kafka 2.8.1(保姆级图文教程)

引用
CSDN
1.
https://blog.csdn.net/donkor_/article/details/140362446

本文将详细介绍如何使用Docker部署Kafka 2.8.1。内容包括环境准备、Zookeeper的安装与启动、Kafka的安装与启动以及测试步骤。每一步都配有具体的命令和解释,适合初学者学习。

一、环境

名称
备注
操作命令对象
Docker 版本26.1.3
远程操作系统
CentOS 7.9 64位
远程管理工具
FinalShell 版本4.3.11
安装软件名称
zookeeper 版本3.4.13
安装软件名称
Kafka 版本2.8.1

二、安装并启动zookeeper

在安装Kafka之前需要先安装zookeeper,因为Kafka启动会将元数据保存在zookeeper中,zookeeper是一种分布式协调服务,可以在分布式系统中共享配置,协调锁资源,提供命名服务。如果已经安装了zookeeper,直接跳过此步骤。

2.1 查找 Docker Hub 上的 zookeeper 镜像

docker search wurstmeister/zookeeper

2.2 拉取zookeeper镜像

没写tag默认安装最新版本

docker pull wurstmeister/zookeeper

2.3 启动zookeeper镜像

docker run --restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2  \
--name zookeeper -p 2181:2181 \
-v /etc/localtime:/etc/localtime \
-d wurstmeister/zookeeper

命令 注释

  • --restart=always 表示容器退出时总是重启
  • --log-driver json-file 表示使用 JSON 文件作为日志驱动
  • --log-opt max-size=100m 表示设置日志的最大大小为100MB
  • --log-opt max-file=2 表示设置日志文件的最大数量
  • --name 表示容器命名
  • -p 表示端口映射
  • -v /etc/localtime:/etc/localtime 表示将本地时间映射到容器中
  • -d 表示后台运行

2.4 查看zookeeper容器是否运行

三、安装并启动Kafka

3.1 查找 Docker Hub 上的 Kafka 镜像

docker search wurstmeister/kafka

3.2 拉取Kafka镜像

没写tag默认安装最新版本

docker pull wurstmeister/kafka

3.3 创建挂载目录

mkdir -p /home/kafka/{data,config}

3.4 启动Kafka镜像

docker run --privileged=true \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kafka -p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=IP:2181/kafka \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_HEAP_OPTS='-Xms512M -Xmx4G' \
-v /home/kafka/data:/wurstmeister/kafka/data \
-v /home/kafka/config:/wurstmeister/kafka/config \
-v /etc/localtime:/etc/localtime \
-d wurstmeister/kafka

命令 注释

  • --privileged=true 表示容器内的root拥有真正的root权限
  • --log-driver json-file 表示使用 JSON 文件作为日志驱动
  • --log-opt max-size=100m 表示设置日志的最大大小为100MB
  • --log-opt max-file=2 表示设置日志文件的最大数量
  • --name 表示容器命名
  • -p 表示端口映射
  • -e KAFKA_BROKER_ID=0 表示这个ID是集群的标识,不能重复
  • -e KAFKA_ZOOKEEPER_CONNECT=IP:2181/kafka 表示zookeeper的连接地址
  • -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP:9092 表示kafka发布到zookeeper供客户端使用的服务地址
  • -e ALLOW_PLAINTEXT_LISTENER=yes 表示允许使用PLAINTEXT侦听器
  • -e KAFKA_HEAP_OPTS='-Xms512M -Xmx4G 表示行内存参数
  • -v /home/kafka/data:/wurstmeister/kafka/data 表示挂载配置数据目录
  • -v /home/kafka/config:/wurstmeister/kafka/config 表示配置文件目录
  • -v /etc/localtime:/etc/localtime 表示将本地时间映射到容器中
  • -d 表示后台运行

配置目录,数据目录挂载我还没试过,谨慎使用!

3.5 查看Kafka容器是否运行

四、测试

4.1 通过exec命令进入容器内部

i :即使没有附加也保持STDIN 打开
t :分配一个伪终端

docker exec -it kafka /bin/bash

4.2 进入Kafka的bin目录下

cd /opt/kafka_2.13-2.8.1/bin

4.2 创建主题,显示主题

./kafka-topics.sh --create --topic test-kafka --bootstrap-server localhost:9092
kafka-topics.sh --describe --topic test-kafka --bootstrap-server localhost:9092

五、更多

Kafaka基础入门
测试成功
完成ヾ(◍°∇°◍)ノ゙

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号