一、安装 Zookeeper
下载 zookeeper 镜像
docker pull wurstmeister/zookeeper
启动 zookeeper
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper
二、安装 Kafka
下载 kafka 镜像,这里我选择 2.11-0.11.0.3 的版本
docker pull wurstmeister/kafka:2.11-0.11.0.3
启动 kafka
KAFKA_ZOOKEEPER_CONNECT 配置本地的 ES 的地址,
KAFKA_ADVERTISED_HOST_NAME 配置 kafka所在服务器的地址
KAFKA_HEAP_OPTS 自定义kafka内存,对于内存比较小的服务器必须设置
//启动kafka
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_HEAP_OPTS=-Xmx1G --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:2.11-0.11.0.3
踩坑记录
启动kafka之后先查看下是否启动成功
docker ps -a
如果发现启动自动退出了,查看日志
docker logs --tail 100 -f kafka容器ID
* 如果发现是连接zookeeper失败检查是否使用了localhost,改为ip
* 如果是内存不足删除kafka容器,修改启动参数的内存重新运行
* 如果是写入文件失败,使用管理员账号运行或使用sudo
sudo docker run ....
* 其他问题检查版本
进入容器
docker exec -it kafka bash
<!--kafka 默认安装在 / opt/kafka-->
cd opt/kafka
<!--创建 topic-->
bin/kafka-topics.sh --create --zookeeper 10.137.85.170:2181 --replication-factor 1 --partitions 1 --topic mykafka
<!--查看 topic-->
bin/kafka-topics.sh --list --zookeeper 10.137.85.170:2181
<!--生产消息-->
bin/kafka-console-producer.sh --broker-list 10.137.85.170:9092 --topic mykafka
ctrl+c退出
<!--消费消息-->
bin/kafka-console-consumer.sh --zookeeper 10.137.85.170:2181 --topic mykafka --from-beginning --group test-group
ctrl+c退出