docker安装kafka

1、下载镜像
这里使用了wurstmeister/kafka和wurstmeister/zookeeper这两个版本的镜像

docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
在命令中运行docker images验证两个镜像已经安装完毕

2.启动
启动zookeeper容器
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper

启动kafka容器

docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.59.101 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest

192.168.59.101 改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。

vi /opt/kafka/kafka/config/server.properties


image.png

如果要本地和远程访问都没有问题,解决如下

然后增加和修改如下
vi /opt/kafka/kafka/config/server.properties


image.png

重新加载配置,再重启docker服务
systemctl daemon-reload && systemctl restart docker.service

docker stop kafka
docker start kafka

  1. 测试kafka
    进入kafka容器的命令行

运行 docker ps,找到kafka的 CONTAINER ID,运行 docker exec -it ${CONTAINER ID} /bin/bash,进入kafka容器。
进入kafka默认目录 /opt/kafka_2.11-0.10.1.0

进入路径:/opt/kafka_2.11-2.0.0/bin下

运行kafka生产者发送消息

./kafka-console-producer.sh --broker-list localhost:9092 --topic zpf

发送消息

test

运行kafka消费者接收消息

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic zpf --from-beginning

kafka出现:

Error while fetching metadata with correlation id : {LEADER_NOT_AVAILABLE}

表示无法识别kafka hostname

正确处理姿势

1、修改server.properties如下,目的是让kafka监听的到

vi /opt/kafka/kafka/config/server.properties


image.png

参考:
Error while fetching metadata with correlation id : {LEADER_NOT_AVAILABLE} 正确处理姿势

docker 安装kafka

CentOS上安装 Docker-CE以及Docker 加速器配置

docker安装kafka

Docker远程连接设置

Kafka服务器允许客户端远程连接

kafka 2.12 配置远程访问

centos7安装配置docker

Docker-端口映射

新版kafka彻底删除topic

你可能感兴趣的:(docker安装kafka)