设为首页 加入收藏

TOP

Docker安装kafka
2018-12-06 18:14:41 】 浏览:13
Tags:Docker 安装 kafka

目录

1.Docker下查看是否有kafka的镜像

2.拉取kafka镜像(如果没有kafka的镜像)

2.1.拉取zookeeper镜像

2.2.拉取kafka镜像

3.查看是否成功拉取了zookeeper和kafka的镜像

4.启动zookeeper和kafka的镜像

4.1.启动zookeeper镜像

4.2.启动kafka镜像

4.3.查看两个镜像是否启动成功

5.测试kafka(生产/消费)消息

5.1进入容器内部

5.2测试消息发送


1.Docker下查看是否有kafka的镜像

在Linux下键入如下命令

docker images |grep kafka

2.拉取kafka镜像(如果没有kafka的镜像)

2.1.拉取zookeeper镜像

在Linux下查看是否有zookeeper的镜像

docker images | grep zookeeper

如果没有 zookeeper 镜像,则拉去zookeeper镜像

docker pull wurstmeister/zookeeper

如果拉取报错:

Error response from daemon: Get https://registry-1.docker.io/v2/wurstmeister/zookeeper/manifests/latest: Get https://auth.docker.io/tokenscope=repository%3Awurstmeister%2Fzookeeper%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

则需要提前去查找一下镜像:

docker search wurstmeister/zookeeper

再执行docker pull wurstmeister/zookeeper就会成功。

2.2.拉取kafka镜像

docker pull wurstmeister/kafka

如果拉取报错:

Error response from daemon: Get https://registry-1.docker.io/v2/wurstmeister/kafka/manifests/latest: Get https://auth.docker.io/tokenscope=repository%3Awurstmeister%2Fkafka%3Apull&service=registry.docker.io: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

则同理去查询一次镜像:

docker search wurstmeister/kafka

再执行docker pull wurstmeister/kafka就会成功。

3.查看是否成功拉取了zookeeper和kafka的镜像

docker images

如下图

4.启动zookeeper和kafka的镜像

4.1.启动zookeeper镜像

docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper

4.2.启动kafka镜像

(切记 192.168.31.131是我虚拟机ip,各位需要更换为自己的kafka镜像所在主机的ip)

docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=192.168.31.131 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka

4.3.查看两个镜像是否启动成功

docker ps

5.测试kafka(生产/消费)消息

5.1进入容器内部

查看kafka的 CONTAINER ID :

docker ps|grep kafka

假设获取到的ID为:ba2540992d9e

使用ID进入容器:

docker exec -it ba2540992d9e /bin/bash

5.2测试消息发送

在容器命令界面(具体进入/opt/kafkaxxxx 要ls一下 查看自己拉取的哪个版本的镜像产生的容器):

cd /opt/kafka_2.12-2.1.0/

创建一个主题名为netmusic:

bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic netmusic

运行一个生产者:

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

在另一个窗口打开容器命令窗口,运行一个消费者:172.17.0.3 是 kafka容器的ip。

可以通过进入kafka容器的命令窗口(docker exec -it ba2540992d9e /bin/bash),使用ifconfig查看ip。

bin/kafka-console-consumer.sh --bootstrap-server 172.17.0.3:9092 --topic netmusic

在生产者的窗口生产消息,就可以在消费者窗口消费消息看到消息。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Kafka遇到的坑-- Error while fet.. 下一篇Kafka's Metadata In ZooKeep..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }