Windows 系统下 Docker安装Kafka

kafka依赖zookeeper,所以需要先安装zookeeper
-p:设置映射端口(默认2181)
-d:后台启动

1.拉取​​​​​​zookeeper并检查拉取是否成功

代码:

C:\Users\Administrator>docker pull wurstmeister/zookeeper
Using default tag: latest
latest: Pulling from wurstmeister/zookeeper
a3ed95caeb02: Pull complete
ef38b711a50f: Pull complete
e057c74597c7: Pull complete
666c214f6385: Pull complete
c3d6a96f1ffc: Pull complete
3fe26a83e0ca: Pull complete
3d3a7dd3a3b1: Pull complete
f8cc938abe5f: Pull complete
9978b75f7a58: Pull complete
4d4dbcc8f8cc: Pull complete
8b130a9baa49: Pull complete
6b9611650a73: Pull complete
5df5aac51927: Pull complete
76eea4448d9b: Pull complete
8b66990876c6: Pull complete
f0dd38204b6f: Pull complete
Digest: sha256:7a7fd44a72104bfbd24a77844bad5fabc86485b036f988ea927d1780782a6680
Status: Downloaded newer image for wurstmeister/zookeeper:latest
docker.io/wurstmeister/zookeeper:latest

C:\Users\Administrator>docker images
REPOSITORY                      TAG          IMAGE ID       CREATED       SIZE
wurstmeister/zookeeper          latest       3f43f72cb283   5 years ago   510MB

默认拉取最新得版本,如需安装指定版本可在拉取镜像时候指明(:xx)xx表示版本 

2.安装zookeeper并检查是否创建容器成功
C:\Users\Administrator>docker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper
7e6ead72f0b2e552d162a487595c2577b9684ffa6154e86808c5d878754b0ff6

C:\Users\Administrator>docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS          PORTS                                                NAMES
7e6ead72f0b2   wurstmeister/zookeeper                 "/bin/sh -c '/usr/sb…"   42 seconds ago   Up 40 seconds   22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   zookeeper

 命令会启动一个名为“zookeeper”的Docker容器,并且映射它的2181端口到你的机器的2181端口

 3.拉取kafka镜像
C:\Users\Administrator>docker pull wurstmeister/kafka
Using default tag: latest
latest: Pulling from wurstmeister/kafka
540db60ca938: Pull complete
f0698009749d: Pull complete
d67ee08425e3: Pull complete
1a56bfced4ac: Pull complete
dccb9e5a402a: Pull complete
Digest: sha256:4916aa312512d255a6d82bed2dc5fbee29df717fd9efbdfd673fc81c6ce03a5f
Status: Downloaded newer image for wurstmeister/kafka:latest
docker.io/wurstmeister/kafka:latest

C:\Users\Administrator>docker images
REPOSITORY                      TAG          IMAGE ID       CREATED       SIZE
wurstmeister/kafka              latest       2dd91ce2efe1   2 years ago   508MB
4.创建kafka容器(我使用得是windows,换行符为“^”,Linux 系统将“^”改成“\”)
docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper ^
--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 ^
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 ^
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 ^
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 wurstmeister/kafka

查看结果并检查创建情况

C:\Users\Administrator>docker run -d --name kafka -p 9092:9092 --link zookeeper:zookeeper ^
More? --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 ^
More? --env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 ^
More? --env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 ^
More? --env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 wurstmeister/kafka
77e7b19dfe2da59681bffc99af8605b401f967a6fcae45065b87893738ce4f58

C:\Users\Administrator>docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                                                NAMES
77e7b19dfe2d   wurstmeister/kafka       "start-kafka.sh"         2 minutes ago    Up 2 minutes    0.0.0.0:9092->9092/tcp                               kafka
7e6ead72f0b2   wurstmeister/zookeeper   "/bin/sh -c '/usr/sb…"   15 minutes ago   Up 15 minutes   22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   zookeeper

参数说明

--name kafka: 设置容器的名字为“kafka”。

-p 9092:9092: 将容器的9092端口映射到宿主机的9092端口。

--link zookeeper:zookeeper: 连接到名为“zookeeper”的另一个Docker容器,并且在当前的容器中可以通过zookeeper这个别名来访问它。

--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181: 设置环境变量,指定ZooKeeper的连接字符串。

--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092: 设置环境变量,指定Kafka的advertised listeners。

--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 设置环境变量,指定Kafka的listeners。

--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1: 设置环境变量,指定offsets topic的副本因子。

wurstmeister/kafka: 使用的Docker镜像名字

如果你的ZooKeeper容器有一个不同的名字或者你使用的是不同的网络设置,你需要相应地调整

--linkKAFKA_ZOOKEEPER_CONNECT的值

5.验证Kafka是否正常运行

出现如下输入终端就是启动成功 

C:\Users\Administrator>docker exec -it kafka /bin/bash
bash-5.1#
6.创建测试主题

在Kafka容器中,运行以下命令创建一个测试主题:

bash-5.1# kafka-topics.sh --create --topic test --partitions 1 --replication-factor 1 --zookeeper zookeeper:2181
Created topic test.

7.执行创建生产者 和消费着

然后输入一些消息(比如输入Hello Kafka 按下enter)

在另一个终端窗口中,创建一个消费者来读取测试主题的消息(也需要进入kafka容器哈),执行创建消费者

生产者(终端):

输入:Hello Kafka

bash-5.1# kafka-console-producer.sh --broker-list localhost:9092 --topic test
>Hello Kafka

消费者(终端):

如果设置正确,你就能在消费者终端中看到你在生产者终端输入"Hello Kafka"

C:\Users\Administrator>docker exec -it kafka /bin/bash
bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
Hello Kafka

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值