在Docker Desktop创建kafka集群

Docker Desktop是一个桌面应用程序,它使开发人员能够在自己的计算机上构建、测试和部署Docker容器。它提供了一个简单易用的用户界面,允许用户管理Docker镜像、容器和服务,并且可以轻松地与本地主机或远程Docker主机进行交互。使用Docker Desktop,开发人员可以快速地创建和启动Docker容器,测试和调试应用程序,以及在多个容器之间进行交互和通信。

首先我们需要安装Docker Desktop,大家可以去官网下载并安装Docker Desktop:https://www.docker.com/​​​​​

安装完成之后就可以在cmd中拉取镜像。

第一步:拉取zookeeper

首先先查看有哪些zookeeper镜像是我们可以拉取的 

docker search zookeeper

我们可以选择使用量最多的一个镜像进行拉取,也就是第一个

docker pull zookeeper

第二步:拉取kafka

同上

docker search kafka

我这边是选取了其中的bitnami/kafka

docker pull bitnami/kafka

随后下载完成之后我们可以在Docker Desktop中看到我们拉去的两个镜像

第三步:配置kafka集群

先配置docker-compose_kafka.yml文件

version: "3"

networks:
  zk-net:
    external:
      name: zk-net

services:
  z1:
    image: 'zookeeper:latest'
    container_name: z1
    hostname: z1
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=z2:2888:3888;2181 server.3=z3:2888:3888;2181
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2181:2181
      - 8081:8080
    volumes:
      - /D/docker_desktop/z1/z1/data:/data
      - /D/docker_desktop/z1/z1/datalog:/datalog
  z2:
    image: 'zookeeper:latest'
    container_name: z2
    hostname: z2
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=z1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=z3:2888:3888;2181
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2182:2181
      - 8082:8080
    volumes:
      - /D/docker_desktop/z1/z2/data:/data
      - /D/docker_desktop/z1/z2/datalog:/datalog
  z3:
    image: 'zookeeper:latest'
    container_name: z3
    hostname: z3
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=z1:2888:3888;2181 server.2=z2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2183:2181
      - 8083:8080
    volumes:
      - /D/docker_desktop/z1/z3/data:/data
      - /D/docker_desktop/z1/z3/datalog:/datalog
  kafka1:
    image: 'bitnami/kafka:latest'
    restart: always    
    container_name: kafka1
    hostname: kafka1
    ports:
      - '9092:9092'
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ALLOW_PLAINTEXT_LISTENER=yes 
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka1:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=z1:2181,z2:2181,z3:2181
    volumes:
      - /D/docker_desktop/k1/kafka1:/bitnami/kafka      
    networks:
      - zk-net
  kafka2:
    image: 'bitnami/kafka:latest'
    restart: always       
    container_name: kafka2
    hostname: kafka2
    ports:
      - '9093:9092'
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ALLOW_PLAINTEXT_LISTENER=yes 
      - KAFKA_BROKER_ID=2
      - KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka2:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=z1:2181,z2:2181,z3:2181
    volumes:
      - /D/docker_desktop/k1/kafka2:/bitnami/kafka        
    networks:
      - zk-net
  kafka3:
    image: 'bitnami/kafka:latest'
    restart: always       
    container_name: kafka3
    hostname: kafka3
    ports:
      - '9094:9092'
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ALLOW_PLAINTEXT_LISTENER=yes 
      - KAFKA_BROKER_ID=3
      - KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092    
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka3:9092
      - KAFKA_CFG_ZOOKEEPER_CONNECT=z1:2181,z2:2181,z3:2181
    volumes:
      - /D/docker_desktop/k1/kafka3:/bitnami/kafka    
    networks:
      - zk-net

在docker-compose_kafka.yml文件的目录中打开cmd

docker-compose -f docker-compose_kafka.yml up -d

之后便可在Docker Desktop中查看配置好的kafka集群

第四步:创建topic

首先启动刚刚创建好的集群docker exec -it kafka1 /bin/bash

然后打开cmd并且进入kafka容器,我这边是进入了kafka1

docker exec -it kafka1 /bin/bash

随后创建topic

./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3 --topic topic3

注意: ./kafka-topics.sh要替换成/opt/bitnami/kafka/bin/kafka-topics.sh

至此,Docker Desktop上的kafka集群搭建完毕。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值