windows环境安装docker参考安装docker桌面版(Windows)
这一步如果出现报错的话可以直接输入wsl -l -v命令来查看当前Ubuntu的wsl版本
docker安装Kafka(windows版)-小白菜博客
安装Kafka需要先安装 zookeeper
zookeeper安装教程:

#step1 获取镜像
$ docker pull zookeeper

#step2 查看镜像
$ docker images

#step3 启动镜像
$ docker run -d --name zookeeper -p 2181:2181  --restart always  -v /etc/localtime:/etc/localtime zookeeper

#step4 查看zookeeper日志
$ docker logs zookeeper
or
$ docker logs zookeeper容器id

#step5 进入zookeeper容器
$ docker exec -it zookeeper容器id /bin/bash

#step6 使用zkCli.sh开启客户端,连接Zookeeper
$ ./apache-zookeeper-3.6.1-bin/zkCli.sh

zk 常用命令:

[zk: localhost:2181(CONNECTED) 0] ls /
[services, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /services     查看入驻的微服务
[cloud-provider-payment]
[zk: localhost:2181(CONNECTED) 2] ls /services/cloud-provider-payment   获取流水号
[00be11a8-7864-4cc5-bb33-3a5650179ea4]
[zk: localhost:2181(CONNECTED) 3] ls /services/cloud-provider-payment/00be11a8-7864-4cc5-bb33-3a5650179ea4
[]
通过流水号来查看微服务信息
[zk: localhost:2181(CONNECTED) 4] get /services/cloud-provider-payment/00be11a8-7864-4cc5-bb33-3a5650179ea4  
{"name":"cloud-provider-payment","id":"00be11a8-7864-4cc5-bb33-3a5650179ea4","address":"Shjango","port":8004,"sslPort":null,"payload":{"@class"
:"org.springframework.cloud.zookeeper.discovery.ZookeeperInstance","id":"application-1","name":"cloud-provider-payment","metadata":{}},"registr
ationTimeUTC":1593225474717,"serviceType":"DYNAMIC","uriSpec":{"parts":[{"value":"scheme","variable":true},{"value":"://","variable":false},{"v
alue":"address","variable":true},{"value":":","variable":false},{"value":"port","variable":true}]}}

安装Kafka

#1、下载kafka镜像
$ docker pull wurstmeister/kafka

#2、启动kafka镜像生成容器
## docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
$ docker run -d --name kafka --p 9092:9092 --link zookeeper -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 -e KAFKA_ADVERTISED_PORT=9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka:latest

# 参数说明:

-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 配置zookeeper管理kafka的路径zookeeper:2181

-e KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 把kafka注册到zk的host上,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。

-e KKAFKA_ADVERTISED_PORT=9092 配置kafka的监听端口

-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

# 3、验证kafka是否可以使用

# 3.1、进入容器
$ docker exec -it kafka bash

# 3.2、进入 /opt/kafka_2.12-2.3.0/bin/ 目录下
$ cd /opt/kafka_2.12-2.3.0/bin/

# 3.3、运行kafka生产者发送消息
$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic test

# 发送消息
> {"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
 
# 3.4、运行kafka消费者接收消息
$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning