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集群搭建完毕。