Zookeeper安装
1、拉取zookeeper 镜像
docker pull zookeeper
2、运行zookeeper 服务
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /mydata/zookeeper/data:/data -v /mydata/zookeeper/conf:/conf -v /mydata/zookeeper/logs:/datalog zookeeper
参数:
-
--log-driver json-file
:指定日志驱动程序为json-file
。json-file
是一个日志驱动程序,它将日志记录为JSON格式的文件。 -
--log-opt max-size=100m
:设置每个日志文件的最大大小为100MB。当单个日志文件达到这个大小时,Docker会自动开始写入新的日志文件。 -
--log-opt max-file=2
:设置最多保留2个日志文件。当达到这个限制时,旧的日志文件会被自动删除,以保留最新的2个日志文件。 -
--name zookeeper
:容器名字 -
-p 2181:2181
:映射端口 -
-v /mydata/zookeeper/data:/data
:挂载Zookeeper的数据目录,存储其运行时数据,包括事务日志和快照 -
-v /mydata/zookeeper/conf:/conf
:挂载Zookeeper配置文件 -
-v /mydata/zookeeper/logs:/datalog
:挂载Zookeeper的日志文件
日志相关的参数只是测试使用,实际根据需求调整。
本机修改文件路径后:
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /Users/fltech/docker/zookeeper/data:/data -v /Users/fltech/docker/zookeeper/conf:/conf -v /Users/fltech/docker/zookeeper/logs:/datalog zookeeper
3、验证是否启动成功
进入zookeeper容器
docker exec -it 容器id /bin/bash
找到配置文件位置
cat /conf/zoo.cfg
查看zookeeper状态
zkServer.sh status
显示如下:
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone
说明Zookeeper启动成功,运行模式是单机版。
Kafka安装
1、拉取kafka 镜像
docker pull kafka
2、运行kafka
docker run -d --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=192.168.1.21:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -v /mydata/kafka/conf:/opt/kafka/conf -v /mydata/kafka/data:/tmp/kafka-logs -v /mydata/kafka/logs:/logs wurstmeister/kafka
kafka运行时,指定需要的环境变量
-
-e KAFKA_BROKER_ID=0
:配置BROKER_ID,默认第一台是0,单机模式下只能是0 -
-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.21:2181/kafka
:配置zookeeper的地址及管理kafka的路径,注意IP使用公网地址 -
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:909
:把kafka的地址端口注册给zookeeper -
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
: 配置kafka的监听端口 -
-v /etc/localtime:/etc/localtime
: 容器时间同步虚拟机的时间
挂载文件根据需要:
-v /mydata/kafka/conf:/opt/kafka/conf
:挂载配置文件
-v /mydata/kafka/data:/tmp/kafka-logs
:挂载数据目录,存储其运行时数据,包括日志文件和元数据
-v /mydata/kafka/logs:/logs
:挂载日志
本机修改文件路径后:
docker run -d --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=192.168.1.21:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.21:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -v /Users/fltech/docker/kafka/conf:/opt/kafka/conf -v /Users/fltech/docker/kafka/data:/tmp/kafka-logs -v /Users/fltech/docker/kafka/logs:/logs wurstmeister/kafka
- 验证是否启动成功
进入容器:
docker exec -it kafka1 bash
到保存脚本的目录:
cd /opt/kafka_2.13-2.7.1/bin
创建一个topic:
/opt/kafka_2.13-2.7.1/bin > kafka-topics.sh --create --zookeeper 192.168.1.21:2181/kafka --replication-factor 1 --partitions 1 --topic topicDemo
Created topic topicDemo.
能够成功创建,说明安装成功。