首页 > 系统相关 >Linux Zookeeper在Docker 安装与简单通信

Linux Zookeeper在Docker 安装与简单通信

时间:2023-12-23 20:22:42浏览次数:40  
标签:compose Zookeeper zoo1 zoo2 zookeeper Linux Docker docker

一、在本地计算机上安装Docker

1.安装Docker (安装最新的Docker版本)

yum install docker-ce docker-ce-cli containerd.io docker-bulidx-plugin docker-compose-plugin

2.查看Docker版本并启动Docker

docker version

安装成功的Docker版本为24.0.6

systemctl start docker

Docker 成功启动

二、在Docker中构建映像(image),安装Zookeeper

1.拉取zookeeper镜像 (选择安装版本为3.8.2)

docker pull zookeeper:3.8.2

2.查看Docker镜像

docker images

已成功拉取zookeeper:3.8.2 镜像

三、构建局域网环境

采用bridge 方式

docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet

四、使用 docker-compose 创建zookeeper集群

1.查看docker - compose (在安装docker时已安装docker-compose-plugin)

docker-compose --version

2.编写zoo.yml文件

3.在zoo.yml同一级目录下执行docker-compose命令

docker-compose -f zoo.yml up -d

4.查看运行的容器

docker ps

可以看到zoo1 zoo2 zoo3 三个容器实例正在运行

其容器id 分别为6635ecc75b61 b8a740a705e2 a447136876a9

5.验证zoo1 zoo2 zoo3是否构成一个集群。进入zookeeper容器查看主从节点

1)进入 zoo1

docker exec -it b8a740a705e2 /bin/bash

zoo1 为follower

2)进入zoo2

docker exec -it 6635ecc75b61 /bin/bash

zoo2为follower

3)进入zoo3

docker exec -it a447136876a9 /bin/bash

zoo3为leader

可以知道zoo1 zoo2 zoo3 通过选举产生得到leader zoo3

follower zoo1 follower zoo2

五、在leader上进行配置修改,观测follower上相应配置的同步情况

1.进入zoo3 启动zkCli.sh 并进行修改

docker exec -it a447136876a9 /bin/bash

./bin/zkCli.sh

ls /

查看

create /hi

2.进入follower zoo2 并启动 zkCli 后查看

出现leader 写入的hi

3.进入follower zoo1 并启动 zkCli 后查看

同样出现leader 写入的hi

六、安装过程中出现的问题

1.构建局域网时报错

在使用命令docker network create --driver bridge --subnet=172.18.0.0/16 --gateway=172.18.0.1 zoonet 出现报错

在查看docker network ls 和docker network inspect后发现因为我之前使用Docker创建了一个network ,它默认是bridge 与我创建的network有冲突。在删除它后问题得到了解决。

2.zookeeper版本问题

使用命令docker run 运行容器时需要指定镜像版本,否则默认会使用最新的版本创建并运行。后面停止并删除之前的zookeeper,指定zookeeper版本后解决问题。

3.zookeeper集群无法通讯的问题

在配置文件zoo.yml 后,使用docker-compose启动,发现各个节点无法通信。因为在yml文件中未指定ipv4的ip地址 ,重新编写yml文件加入networks配置解决问题。

标签:compose,Zookeeper,zoo1,zoo2,zookeeper,Linux,Docker,docker
From: https://www.cnblogs.com/wei-1024/p/17908364.html

相关文章

  • 使用Avalonia跨Linux平台
    https://blog.csdn.net/u012563853/article/details/128020416 Avalonia,读:阿瓦隆尼亚这里的跨平台指的是,使用c#语言开发跨Linux平台。c#在Windows桌面开发中很强,但是在Linux桌面中,不能跨平台,Qt可以在Linux中跨平台,但是那是另外一门语言了。Avalonia类似使用WPF的技术方法来开......
  • Linux操作系统之面试必刷50题
    1、static作用static是一个关键字,在不同的上下文中具有不同的作用。以下是static关键字的几种常见用法和作用:静态变量(StaticVariables):在函数内部使用static关键字声明的变量称为静态变量。静态变量在程序的整个生命周期内都存在,不会随着函数的调用而被销毁。静态变量的作用域......
  • 使用Docker和Nginx部署单页面应用
    使用Docker和Nginx部署单页面应用一、简介1.背景Docker是一个容器引擎,它使用Linux内核功能(如命名空间和控制组)在操作系统之上创建容器DockerCompose是一个命令行工具,可以简化容器镜像的构建以及容器的运行,将命令行的选项翻译成配置文件Nginx是一个高性能的HTTP和反向代理......
  • linux内核中的zero-page
    zero-page操作系统给用户新分配的内容(通过mmap或者brk)都是清零过的,但是这些虚拟地址通常都是按需分配物理页面。这里的“按需”的需求可能是读取,也可能是写入。如果只是读取,只要保证读取内容是零即可,在MMU的基础上,可以让“所有”虚拟地址都映射到内容为0的物理页面中。这样如......
  • docker-compose gitlab
    version:'3'services:gitlab:image:'yrzr/gitlab-ce-arm64v8:latest'restart:unless-stoppedhostname:'test.gitlab.com'environment:TZ:'Asia/Shanghai'GITLAB_OMNIBUS_CONFIG:|......
  • 深入了解 Linux 网卡和网口:揭秘网络接口的奥秘
    实际工作中,把服务器关机了,网线从一个网口移动到了其他网口,导致再开机后,服务器无法联网了。由于缺少王工的支持,这使我开始关注网络技术。先总结下常用的概念和操作吧。1.网卡和网口的对应关系在Linux系统中,网卡(NetworkInterfaceCard,NIC)与网络接口(网口)之间存在紧密的对应关系。......
  • 按马哥教育关于2023版Linux云计算SRE工程师掌握知识类别,你会了哪些?
    模块1:Linux新手快速基础入门模块2:面试必备-企业级Shell脚本编程实战模块3:Linux系统结构、内核、进程进阶模块4:网络管理管理及互联网通信实战模块5:互联网常见服务应用实战模块6:网络安全、加密及安全通信实战模块7:安全加固内核防火墙Iptables模块8:企业级Web-LA/NMP架......
  • 【Linux】命令实现分卷压缩
    压缩命令#压缩命令:把es-head.tar文件,差分成20m大小的文件,每一部分都以es-head-part-前缀命名split-b20mes-head.tares-head-part-#压缩命令:把testSplit文件夹,压缩拆分成20m大小的文件,每一部分都以testSplit-part-前缀命名tar-czvf-testSplit/|split-b20m-test......
  • Linux磁盘分区和挂载
    一、准备工作(1)查看主机磁盘命令:lsblk(2)查看主机磁盘挂载文件系统情况命令:df-h二、磁盘分区(1)分区命令:fdisk-b1024/dev/vda其中:b1024,一个sectorsize的大小;1GB;使用-b指定sector时,每个sector的大小是:sectorsize(512,1024,2048or4096)。(2)根据提示填写相应信息n,是......
  • Linux:vscode扩展无法下载,报错:Error while fetching extensions : XHR failed
     在Linux系统上下载安装好vscode以后,发现扩展里面无法下载安装,报错:Error while fetching extensions : XHR failed 解决办法:修改hosts文件1.sudocp/etc/hosts/etc/hosts.bak2.sudovi/etc/hots3.在文件末尾增加下面的文字,然后保存,关闭  4.刷新DNS,Ubuntu22......