保姆级教程Docker部署Zookeeper模式的Kafka镜像

目录

一、安装Docker及可视化工具

二、Docker部署Zookeeper

三、单节点部署

1、创建挂载目录

2、命令运行容器

3、Compose运行容器

4、查看运行状态

5、验证功能

四、部署可视化工具

1、创建挂载目录

2、Compose运行容器

3、查看运行状态


一、安装Docker及可视化工具

为了简化安装过程并确保环境一致性,推荐使用 Docker 来本地部署 Kafka。这不仅能够快速启动服务,还能有效解决不同操作系统之间的兼容性问题,采用隔离环境的方式,避免了因环境差异导致的问题。

二、Docker部署Zookeeper

三、单节点部署

1、创建挂载目录

bash 复制代码
# 创建宿主机kafka挂载目录
sudo mkdir -p /data/docker/kafka/data

# 修改data目录权限
sudo chmod 777 /data/docker/kafka/data

2、命令运行容器

bash 复制代码
# 拉取镜像
sudo docker pull bitnami/kafka:3.4.0

# 运行容器
sudo docker run --privileged=true \
--net=zk-net \
-d --name=kafka \
-v /data/docker/kafkat/data:/bitnami/kafka/data \
-p 9092:9092 -p 9093:9093 \
-e TZ=Asia/Shanghai \
-e LANG=C.UTF-8 \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e BITNAMI_DEBUG=yes \
bitnami/kafka:3.4.0

参数解析如下:

|-----------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
| 参数 | 参数说明 |
| docker run | 运行 Docker 容器 |
| -d | 容器将在后台运行,而不是占用当前的终端会话 |
| --privileged=true | Docker会赋予容器几乎与宿主机相同的权限 |
| --net=zk-net | 网络模式配置,加入Zookeeper容器创建的网络,以便容器间通讯 |
| --name kafka | 给容器命名为 kafka,以便于管理和引用该容器 |
| -p 9092:9092 -p 9093:9093 | 映射 kafka 的客户端通信端口和控制器端口 |
| -e KAFKA_CFG_ZOOKEEPER_CONNECT= zookeeper:2181 | zookeeper的连接地址 |
| -e KAFKA_CFG_LISTENERS= PLAINTEXT://:9092,CONTROLLER://:9093 | 表示Kafka要监听哪些端口,PLAINTEXT://:9092,CONTROLLER://:9093表示本节点作为混合节点,监听本机所有可用网卡的9092和9093端口,其中9092作为客户端通信端口,9093作为控制器端口 |
| -e KAFKA_CFG_ADVERTISED_LISTENERS= PLAINTEXT://192.168.3.9:9092 | 配置Kafka的外网地址,需要修改为对应的Kafka的外网地址。 |
| -e ALLOW_PLAINTEXT_LISTENER=yes | 允许Kafka监听器使用明文传输 |
| -e BITNAMI_DEBUG=yes | 显示详细报错信息 |

3、Compose运行容器

创建docker-compose.yml文件

bash 复制代码
sudo touch /data/docker/kafka/docker-compose.yml

文件内容如下:

bash 复制代码
version: '3'

networks:
  zk-net:
    external: true  # 标记这个网络是外部网络

services:
  kafka:
    image: bitnami/kafka:3.4.0
    container_name: kafka
    ports:
      - "9092:9092"
      - "9093:9093"
    environment:
      - TZ=Asia/Shanghai
      - LANG=C.UTF-8
      - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092
      - ALLOW_PLAINTEXT_LISTENER=yes
      - BITNAMI_DEBUG=yes
    volumes:
      - /data/docker/kafka/data:/bitnami/kafka/data
    privileged: true
    networks: 
      - zk-net

运行容器

bash 复制代码
#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka/docker-compose.yml up -d

4、查看运行状态

5、验证功能

验证步骤如下,分别创建一个生产者和一个消费者,查看消费者是否能够收到生产者生产的消息

bash 复制代码
# 1.进入kafka容器内
sudo docker exec -it kafka /bin/bash

# 2.进入kafka安装目录
cd /opt/bitnami/kafka/bin

# 3.生产消息
./kafka-console-producer.sh --topic test01 --bootstrap-server localhost:9092

# 3.消费消息
./kafka-console-consumer.sh --topic test01 --from-beginning --bootstrap-server localhost:9092 --group group01

# 查询主题列表
./kafka-topics.sh --bootstrap-server localhost:9092 --list

# 查询消费组列表
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

生产消息

消费消息

验证结果表明,kafka部署正常,可正常生产和消费消息

四、部署可视化工具

Zookeeper模式的Kafka推荐使用Kafka Eagle进行可视化管理。Kafka Eagle 是一款开源的 Kafka 监控和管理工具,主要用于监控 Kafka 集群的健康状态、性能指标以及管理主题和消费者组。

1、创建挂载目录

bash 复制代码
# 创建宿主机kafka-eagle挂载目录
sudo mkdir -p /data/docker/kafka-eagle

2、Compose运行容器

创建docker-compose.yml文件

bash 复制代码
sudo touch /data/docker/kafka-eagle/docker-compose.yml

文件内容如下:

bash 复制代码
version: '3'

networks:
  zk-net:
    external: true  # 标记这个网络是外部网络

services:
  kafka-eagle:
    image: nickzurich/efak:3.0.1
    container_name: kafka-eagle
    ports:
      - "8048:8048"
    environment:
      - TZ=Asia/Shanghai
      - EFAK_CLUSTER_ZK_LIST='zookeeper:2181'
    volumes:
      - /data/docker/kafka-eagle/config:/opt/efak/conf
      - /data/docker/kafka-eagle/data:/hadoop/efak/db
    privileged: true
    networks: 
      - zk-net

运行容器

bash 复制代码
#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka-eagle/docker-compose.yml up -d

3、查看运行状态

http://192.168.3.9:8048

用户名密码:admin/123456

相关推荐
东风微鸣2 小时前
使用 Loki 配置告警,如何将原始日志内容添加告警到注释中?
docker·云原生·kubernetes·可观察性
HeXDev3 小时前
【CDH】CDH环境中升级ZooKeeper的实战记录
分布式·zookeeper·云原生·cdh
帽儿山的枪手13 小时前
docker-image 工具展示更详细镜像层内容
docker
草履虫建模14 小时前
RuoYi-Vue 项目 Docker 容器化部署 + DockerHub 上传全流程
java·前端·javascript·vue.js·spring boot·docker·dockerhub
小醉你真好15 小时前
6、CentOS 9 安装 Docker
linux·docker·centos
xdpcxq102916 小时前
Docker用Web应用实例深入容器
前端·docker·容器
●VON20 小时前
重生之我在暑假学习微服务第四天《Docker-下篇》
java·学习·docker·微服务·容器
77qqqiqi21 小时前
Docker
java·docker·微服务
妙妙屋(zy)1 天前
基于Astro开发的Fuwari静态博客模版配置CICD流程
服务器·docker
zkmall1 天前
ZKmall开源商城架构工具链:Docker、k8s 部署与管理技巧
docker·架构·开源