首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图文详解使用Docker容器,进行Kafka单点和集群配置

传陆编程

前言

干货,不啰嗦,直奔主题!

1、拉取Zookeeper镜像

docker pull wurstmeister/zookeeper

注解:pull,从docker仓库拉取一个镜像。

后面的参数格式:镜像名称:版本。:版本,为可选参数。不写的话,就是拉取默认版本latest。

2、拉取Kafka镜像

docker pull wurstmeister/kafka

查看已下载的镜像

docker images -a

注解:images,镜像列表。

-a 或 --all,为可选参数。显示所有镜像,不加该参数,默认是隐藏过程镜像的。

部署单点Zookeeper和单点Kafka,为后面的集群搭建做基础

1、创建Zookeeper单点容器

创建Zookeeper容器

注解:run,创建新容器,并为容器配置一些参数。

-t,在容器内部创建一个tty或者伪终端。

-i,允许主机终端按照容器内部的标准与其交互。

-d,后台运行容器并打印容器名称。

--name,容器名称。

-p,端口映射,参数格式为:主机物理端口:容器内部端口。

最后跟上的就是我们已经下载的镜像。

2、创建Kafka单点容器:

创建Kafka容器

注解:

-e,配置容器环境变量。

--link,链接到另一个容器,参数格式为:目标容器名称:在本容器内的别名。

这里的环境变量设置,其实是就是对即将创建的Kafka配置文件server.properties进行初始化。

查看容器

docker ps -a

注解:ps,容器列表。

-a 或 --all,为可选参数。显示所有容器,不加该参数,默认仅显示运行中的容器。

3、测试

进入Kafka容器

进入Kafka容器

注释:exec,在运行中的容器中,执行命令。

跟上容器名称,也就是我们自己用 --name参数定义的名称。

如果没有定义,也可以用ID。

再跟上要执行的命令。

消息生产和消息消费测试

测试成功

部署Zookeeper集群和Kafka集群

注意:这里没有使用 docker-compose,全部是手动搭建的方式。这样可以帮助我们熟悉使用docker,并了解Zookeeper和Kafka集群配置。

我们准备搭建3个Zookeeper节点和3个Kafka节点,集群不再适合使用link的方式进行容器间的通信。我们使用自定义网络,然后把容器加入自定义网络中。

1、创建自定义网络

查看网络

docker network ls

注释:network,管理网络。

ls,网络列表

创建网络

创建自定义网络

再次查看网络

自定义网络创建成功

2、创建Zookeeper集群

1、创建Zookeeper节点1

创建Zookeeper节点1

注释:

-v,将宿守主机文件挂载到容器内部,参数格式:主机文件或目录:容器内文件或目录。当然了,既然是把主机文件挂载到容器内部,首先要先创建好主机的这些文件或目录,比如最重要的 zoo.cfg 文件,还有myid文件。myid服务器节点编号。

zoo.cfg中的集群核心配置如下:

#server.服务器节点编号=主机名:心跳端口:选举端口)

server.1=zookeeper1:2888:3888

server.2=zookeeper2:2888:3888

server.3=zookeeper3:2888:3888

三个节点上述配置一致。只是myid文件内容记录分别是1,2,3。

2、创建Zookeeper节点2

创建Zookeeper节点2

3、创建Zookeeper节点3

创建Zookeeper节点3

4、分别进入Zookeeper节点,查看zkServer运行状态

领导者已经选举成功,Zookeeper集群完成

3、创建Kafka集群

参数配置的含义,都已经有过解释了,直接看三个节点配置吧

Kafka节点1

Kafka节点2

Kafka节点3

4、测试

这次测试,小编使用宿守主机上的kafka进行测试。链接Kafka容器,用的是主机与容器的端口映射。

结束

本文涵盖的知识点:

Docker常用命令的介绍

Docker常用配置参数的说明

Docker实现主机与容器通信,端口映射

Docker容器间通信,使用了link方式和network方式

Docker自定义网络

Docker容器挂载文件,-v

Docker容器环境变量设置,-e

Zookeeper单点部署和集群部署

Kafka单点部署和集群部署

Kafka命令方式生产消息和消费消息

您的关注与点赞,就是对小编最大的鼓励和支持。小编会继续努力,为大家带来干货知识。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181215A02H1N00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券