Docker环境下安装Zookeeper和Kafka

下载 Docker 镜像:

[root@centos-101 ~]# docker pull wurstmeister/zookeeper:latest

[root@centos-101 ~]# docker pull wurstmeister/kafka:latest

查看下载完成的Docker 镜像:

docker images

Docker环境下安装Zookeeper和Kafka

下面分别启动Zookeeper 和 kafka 容器,这一步骤可以忽略。直接通过 docker-compose 命令来启动容器。

创建并启动容器

先启动Zookeeper:

[root@centos-101 ~]# docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper:latest

Docker环境下安装Zookeeper和Kafka

在启动kafka 容器:

创建 docker-compose.yml 文件

在/root/目录下,创建kafka 目录(mkdir):

[root@centos-101 kafka]# pwd

/root/kafka

然后在 kafka 子目录下,创建 docker-compose.yml 文件,如下所示:

version: '2'

services:

zookeeper:

image: wurstmeister/zookeeper

ports:

- "2181:2181"

kafka:

image: wurstmeister/kafka

ports:

- "9092:9092"

environment:

KAFKA_ADVERTISED_HOST_NAME: 192.168.56.101

KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

volumes:

- /var/run/docker.sock:/var/run/docker.sock

Docker环境下安装Zookeeper和Kafka

其中 KAFKA_ADVERTISED_HOST_NAME: 192.168.56.101 根据具体的环境,设置对应的IP 地址。

参考官方的docker-compose.yml文件:

https://raw.githubusercontent.com/wurstmeister/kafka-docker/master/docker-compose.yml

启动 docker-compose

[root@centos-101 kafka]# docker-compose up -d

Creating kafka_zookeeper_1 ... done

Creating kafka_kafka_1 ... done

查看启动的zooker/kafka 容器:

docker ps

Docker环境下安装Zookeeper和Kafka

也可以访问http://192.168.56.101:9000/#/containers 【portainer容器】,查看相应的容器:

Docker环境下安装Zookeeper和Kafka

向 kafka 发生测试消息

可以进入 kafka 容器:

docker exec -it kafka_kafka_1 /bin/bash

进入kafka 所在目录,以及查看kafka版本:

Docker环境下安装Zookeeper和Kafka

查看bin 目录:

bash-4.4# ls bin

connect-distributed.sh kafka-reassign-partitions.sh

connect-standalone.sh kafka-replica-verification.sh

kafka-acls.sh kafka-run-class.sh

kafka-broker-api-versions.sh kafka-server-start.sh

kafka-configs.sh kafka-server-stop.sh

kafka-console-consumer.sh kafka-streams-application-reset.sh

kafka-console-producer.sh kafka-topics.sh

kafka-consumer-groups.sh kafka-verifiable-consumer.sh

kafka-consumer-perf-test.sh kafka-verifiable-producer.sh

kafka-delegation-tokens.sh trogdor.sh

kafka-delete-records.sh windows

kafka-dump-log.sh zookeeper-security-migration.sh

kafka-log-dirs.sh zookeeper-server-start.sh

kafka-mirror-maker.sh zookeeper-server-stop.sh

kafka-preferred-replica-election.sh zookeeper-shell.sh

kafka-producer-perf-test.sh

(1)创建一个topic 为 mykafka。

bash-4.4# bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka

Created topic "mykafka".

(2)查看当前的 topic 列表。

bash-4.4# bin/kafka-topics.sh --list --zookeeper zookeeper:2181

__consumer_offsets

mykafka

(3)运行一个消息生产者,指定topic 为刚刚创建的 mykafka。同时,输入一些测试消息。

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka

>hello rickie

(输入若干条消息后 按^C 退出发布)

(4)运行一个消息生产者,指定 topic 为刚刚创建的 mykafka。可以接收到生产者发送的消息。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka --from-beginning

hello rickie

这样,kafka 环境已经ready 了(部署正常)。

停止 docker-compose

在你的项目路径下使用 docker-compose down。

[root@centos-101 kafka]# docker-compose down

Stopping kafka_zookeeper_1 ... done

Stopping kafka_kafka_1 ... done

Removing kafka_zookeeper_1 ... done

Removing kafka_kafka_1 ... done

Removing network kafka_default

相关推荐