Docker(Windows版)安装zookeeper+kafka

近期在对已有项目进行升级维护时时需要还原生产环境中关于kafka数据订阅的问题,但是又不想在自己电脑上装一堆东西,所以想到了用Docker安装kafka用来还原生产环境进行测试。

1.安装zookeeper

启动Docker服务,打开CMD窗口或powershell窗口。

搜索zookeeper镜像

docker search zookeeper

拉取zookeeper镜像

docker pull wurstmeister/zookeeper

创建并启动zookeeper容器

docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper

一切看起来很顺利,到这里却卡壳了,这一步执行始终不成功,找了半天资料才发现是zookeeper默认使用是2181端口被占用了,占用者又恰好是Docker所依赖的Hyper-V虚拟化服务。解决办法看下面了。

1.1 补充-解决2181端口占用问题

由于Hyper-V占用的2181端口,所以必须将Hyper-V停掉后把2181释放出来,但是没了Hyper-V,Dokcer就不能运行了,所以改完还要将Hyper-V启动。

查看端口占用情况

netsh interface ipv4 show excludedportrange protocol=tcp

禁用Hyper-V服务

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

解除2181端口限制

netsh int ipv4 add excludedportrange protocol=tcp startport=2181 numberofports=1

启用Hyper-V服务

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

检查确认端口占用情况

netsh interface ipv4 show excludedportrange protocol=tcp

问题解决,zookeeper容器顺利创建并启动

2.安装kafka

搜索镜像kafka

docker search kafka

拉取kafka镜像

docker pull wurstmeister/kafka

创建并启动kafka容器,连接到上一步创建的zookeeper

docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka

kafka容器启动成功,在Docker的Dashboard中可以看到已启动的容器。
Docker(Windows版)安装zookeeper+kafka_第1张图片

3.连接zookeeper

安装客户端工具kafka-tool,连接zookeeper,创建topic用于测试。

Docker(Windows版)安装zookeeper+kafka_第2张图片

你可能感兴趣的:(学习实践)