前置说明
- docker for windows
安装Zookeeper
docker search zookeeper
docker pull zookeeper
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper
安装Kafka
docker search kafka
docker pull wurstmeister/kafka
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.22.53.11:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.22.53.11:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
参数说明
参数 | 说明 |
---|---|
-e KAFKA_BROKER_ID=0 | 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己 |
-e KAFKA_ZOOKEEPER_CONNECT=10.20.8.50:2181/kafka | 配置zookeeper管理kafka的路径10.20.8.50:2181/kafka,IP请根据实际情况修改 |
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.20.8.50:9092 | 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。,IP请根据实际情况修改 |
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 | 配置kafka的监听端口 |
-v /etc/localtime:/etc/localtime | 容器时间同步虚拟机的时间 |
验证
# 进入docker
docker ps
docker exec -it 95f9f4890540 /bin/bash
cd /opt/kafka_2.13-2.6.0/bin
# 查看所有topic
./kafka-topics.sh --zookeeper 172.22.53.11:2181 --list
# 创建一个名为“test”的topic
./kafka-topics.sh --create --zookeeper 172.22.53.11:2181 --partitions 1 --replication-factor 1 --topic test
# 再次查询
./kafka-topics.sh --zookeeper 172.22.53.11:2181 --list
# 使用console-producer生产消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
# 使用console-consumer消费消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
参考资料
参考命令
# 查看全名
docker ps -a --no-trunc
docker search kafka --no-trunc
# 搜索
docker search zookeeper
# 删除容器
docker rm d2fbfb3e3a84
# 移除镜像
docker rmi 3f43f72cb283
# 停止docker镜像
docker stop d2fbfb3e3a84
# 进入docker
docker exec -it 95f9f4890540 /bin/bash
# 查看docker ip地址
docker exec -it a5a44d00a74e ip addr
# 启动docker,如果docker曾经启动,那么只需要start可以重新启动镜像了
docker start 6abc
# 查看端口
netstat -ano | findstr "2181"
参考博客
Docker run 命令 | 菜鸟教程
window docker 安装zookeeper、kafka遇到的坑_ww4560855的专栏-CSDN博客
看这里,看这里
文章总目录:博客导航
参考文章:https://blog.csdn.net/u_ascend/article/details/109581561