系列文章目录
Docker部署Nginx 1.21.5(保姆级图文教程)
Docker部署MySQL 8.3.0(保姆级图文教程)
Docker部署ETCD 3.5.14(保姆级图文教程)
Docker部署Kafka 3.5.14(保姆级图文教程)
文章目录
- 一、环境
- 二、安装并启动zookeeper
-
- [2.1 查找 Docker Hub 上的 zookeeper 镜像](#2.1 查找 Docker Hub 上的 zookeeper 镜像)
- [2.2 拉取zookeeper镜像](#2.2 拉取zookeeper镜像)
- [2.3 启动zookeeper镜像](#2.3 启动zookeeper镜像)
- [2.4 查看zookeeper容器是否运行](#2.4 查看zookeeper容器是否运行)
- 三、安装并启动Kafka
-
- [3.1 查找 Docker Hub 上的 Kafka 镜像](#3.1 查找 Docker Hub 上的 Kafka 镜像)
- [3.2 拉取Kafka镜像](#3.2 拉取Kafka镜像)
- [3.3 创建挂载目录](#3.3 创建挂载目录)
- [3.4 启动Kafka镜像](#3.4 启动Kafka镜像)
- [3.5 查看Kafka容器是否运行](#3.5 查看Kafka容器是否运行)
- 四、测试
-
- [4.1 通过exec命令进入容器内部](#4.1 通过exec命令进入容器内部)
- [4.2 进入Kafka的bin目录下](#4.2 进入Kafka的bin目录下)
- [4.2 创建主题,显示主题](#4.2 创建主题,显示主题)
- 五、更多
一、环境
名称 | 备注 |
---|---|
操作命令对象 | 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 镜像
shell
docker search wurstmeister/zookeeper
2.2 拉取zookeeper镜像
没写tag默认安装最新版本
shell
docker pull wurstmeister/zookeeper
2.3 启动zookeeper镜像
shell
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 镜像
shell
docker search wurstmeister/kafka
3.2 拉取Kafka镜像
没写tag默认安装最新版本
shell
docker pull wurstmeister/kafka
3.3 创建挂载目录
shell
mkdir -p /home/kafka/{data,config}
3.4 启动Kafka镜像
shell
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
:分配一个伪终端
shell
docker exec -it kafka /bin/bash
4.2 进入Kafka的bin目录下
shell
cd /opt/kafka_2.13-2.8.1/bin
4.2 创建主题,显示主题
shell
./kafka-topics.sh --create --topic test-kafka --bootstrap-server localhost:9092
kafka-topics.sh --describe --topic test-kafka --bootstrap-server localhost:9092
五、更多
测试成功
完成ヾ(◍°∇°◍)ノ゙