MAC m系列 Docker安装kafka

本文详细描述了如何在Mac上的Docker环境下安装并配置Zookeeper和Kafka,特别强调了由于MacOSDocker容器间的通信限制,需要使用`docker.for.mac.host.internal`进行IP设置。文中给出了安装步骤和环境变量配置示例,以及生产者和消费者测试方法。
摘要由CSDN通过智能技术生成

MAC m系列Docker安装kafka

kafka依赖zookeeper,因此需要使用docker同时安装zookeeper和kafka。 macOS的docker在容器和宿主之间无法通过ip直接通信,因此在安装的时候需要特殊注意与ip相关的设置。当容器需要访问宿主ip时,需要使用docker.for.mac.host.internal或者host.docker.internal代替。

docker安装zookeeper

# 1.拉取镜像 这里选择3.5.9版本
docker pull zookeeper:3.5.9
# 2.启动zookeeper,寻找需要挂载的内容
docker run --name zookeeper3.5.9 -p 2181:2181 --restart always -d zookeeper:3.5.9
# 3.停止并删除启动的容器
docker stop zookeeper3.5.9
docker rm zookeeper3.5.9
# 4.创建需要挂载的目录
/Users/ityoung/workspace/zookeeper/data
/Users/ityoung/workspace/zookeeper/conf
/Users/ityoung/workspace/zookeeper/logs
# 5.启动镜像
docker run -d --name zookeeper3.5.9 --privileged=true -p 2181:2181  -v /Users/ityoung/workspace/zookeeper/data:/data -v /Users/ityoung/workspace/zookeeper/conf:/conf -v /Users/ityoung/workspace/zookeeper/logs:/datalog zookeeper:3.5.9

这里conf下面需要创建一个配置文件zoo.cfg

dataDir=/data
clientPort=2181
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=localhost:2888:3888;2181

这样我们的zookeeper就安装完成了。

docker安装kafka

# 1.拉取镜像 这里选择默认版本
docker pull wurstmeister/kafka
# 2.启动镜像
docker run -d --name kafka -p 9092:9092 
-e KAFKA_BROKER_ID=0 
-e KAFKA_ZOOKEEPER_CONNECT=docker.for.mac.host.internal:2181/kafka 
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://docker.for.mac.host.internal:9092 
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
  • -d设置后台运行

  • –name 指定容器别名

  • -p 2181:2181绑定容器端口到宿主端口

  • -e参数可以设置docker容器内环境变量:

    • KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己

    • KAFKA_ZOOKEEPER_CONNECT={host-ip}:{zookeeper-port}/kafka 配置zookeeper管理kafka的路径

    • KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://{host-ip}:9092 把kafka的地址端口注册给zookeeper

    • KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 kafka监听地址

测试kafka生产和消费

**如果容器启动成功,但是测试出现错误可以看看是否配置了 **127.0.0.1 docker.for.mac.host.internal这一条DNS

docker exec -it kafka bash
cd /opt/kafka/bin
# 运行kafka生产者
./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic first-topic
# 出现>之后发送Hello
>Hello
# 打开新终端,启动kafka消费者
cd /opt/kafka/bin
./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic first-topic --from-beginning
  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值