1、获取相关镜像:
1.1 获取 zookeeper 镜像:
docker pull wurstmeister/zookeeper
1.2 获取 kafka 镜像:
docker pull wurstmeister/kafka
2.运行镜像
2.1 运行zookeeper
docker run -d --name zookeeper -p 2282:2181 -t wurstmeister/zookeeper
2.2 运行kafka
docker run -d --name kafka --publish 9092:9092 --env KAFKA_ZOOKEEPER_CONNECT=zookeeper_ip:2282 --env KAFKA_ADVERTISED_HOST_NAME=kafka监听IP --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/mykafka:/etc/localtime wurstmeister/kafka:latest
3.修改kafka的相关参数
3.1 进入kafka容器
docker exec -it kafka /bin/sh
3.2 找到启动的配置文件
配置文件默认存放:/opt/kafka/config/server.properties
日志保留时间: log.retention.hours
保存重启即可生效
4 常见问题:
4.1 若重建容器,将导致broker.id递增,原来已经运行过一些主题,可能导致原主题无leader的情况。
先进入kafka容器,然后查看当前主题的leader情况
kafka-topics.sh --zookeeper zookeeper_IP:2282 --describe
若leader为-1 ,由于当前为单节点,所以需调整当前的broker.id为isr一致即可
修改配置文件:
# vi /kafka/当前运行日志记录/meta.properties
vi /kafka/kafka-logs-3d42f17c10fc/meta.properties
修改:broker.id=1001
保存重启即可生效