当前位置: 首页 > 知识库问答 >
问题:

单台服务器的docker中安装zookeeper集群, 我怎么一直不成功呢?

查淮晨
2023-09-21

docker拉取的zookeeper版本是3.8.2

在docker创建的网络:

docker network create --driver bridge --subnet=172.168.0.0/16 --gateway=172.168.1.1 zoo-net

docker容器启动命令, 打算起3个zk容器:

docker run -d --name zoo-master --restart=always --network zoo-net --ip 172.168.0.2 -p 2181:2181 -p 2888:2888 -p 3888:3888 -e ZOO_MY_ID=1 --privileged -v /data/kafka_cluster/zookeeper/master/conf/zoo.cfg:/conf/zoo.cfg -v /data/kafka_cluster/zookeeper/master/data:/data -v /data/kafka_cluster/zookeeper/master/datalog:/datalog -v /data/kafka_cluster/zookeeper/master/logs:/logs zookeeper:3.8.2docker run -d --name zoo-node1 --restart=always --network zoo-net --ip 172.168.0.3 -p 2182:2181 -p 2887:2888 -p 3887:3888 -e ZOO_MY_ID=2 --privileged -v /data/kafka_cluster/zookeeper/master/conf/zoo.cfg:/conf/zoo.cfg -v /data/kafka_cluster/zookeeper/master/data:/data -v /data/kafka_cluster/zookeeper/master/datalog:/datalog -v /data/kafka_cluster/zookeeper/master/logs:/logs zookeeper:3.8.2docker run -d --name zoo-node2 --restart=always --network zoo-net --ip 172.168.0.4 -p 2183:2181 -p 2886:2888 -p 3886:3888 -e ZOO_MY_ID=3 --privileged -v /data/kafka_cluster/zookeeper/master/conf/zoo.cfg:/conf/zoo.cfg -v /data/kafka_cluster/zookeeper/master/data:/data -v /data/kafka_cluster/zookeeper/master/datalog:/datalog -v /data/kafka_cluster/zookeeper/master/logs:/logs zookeeper:3.8.2

这是配置文件, 三个容器都相同:

dataDir=/datadataLogDir=/datalogtickTime=2000initLimit=5syncLimit=2autopurge.snapRetainCount=3autopurge.purgeInterval=0maxClientCnxns=60standaloneEnabled=falseadmin.enableServer=false4lw.commands.whitelist=*server.1=zoo-master:2888:3888;2181server.2=zoo-node1:2887:3887;2182server.3=zoo-node2:2886:3886;2183

结果是这样的
image.png

zoo-master日志:
image.png

进入容器内部执行./zkServer.sh status的内容:
image.png

求大佬们帮帮忙了

共有1个答案

陈允晨
2023-09-21

报错是no route to host-主机不可达,看了下应该是端口配置不对,你全填成宿主机的端口了
配置文件改成这样:

dataDir=/datadataLogDir=/datalogtickTime=2000initLimit=5syncLimit=2autopurge.snapRetainCount=3autopurge.purgeInterval=0maxClientCnxns=60standaloneEnabled=falseadmin.enableServer=false4lw.commands.whitelist=*server.1=zoo-master:2888:3888;2181server.2=zoo-node1:2888:3888;2181server.3=zoo-node2:2888:3888;2181

其实在同一台机子模拟zookeeper集群不用真的给每一个容器分一个ip,用端口来做区分就可以了,容易出问题,
见:https://cloud.tencent.com/developer/article/1680299

 类似资料:
  • 本文向大家介绍ZooKeeper 集群中的服务器状态?相关面试题,主要包含被问及ZooKeeper 集群中的服务器状态?时的应答技巧和注意事项,需要的朋友参考一下 LOOKING :寻找 Leader。 LEADING :Leader 状态,对应的节点为 Leader。 FOLLOWING :Follower 状态,对应的节点为 Follower。 OBSERVING :Observer 状态,对

  • 本文向大家介绍ZooKeeper 集群 ?相关面试题,主要包含被问及ZooKeeper 集群 ?时的应答技巧和注意事项,需要的朋友参考一下 为了保证高可用,最好是以集群形态来部署 ZooKeeper,这样只要集群中大部分机器是可用的(能够容忍一定的机器故障),那么 ZooKeeper 本身仍然是可用的。通常 3 台服务器就可以构成一个 ZooKeeper 集群了。ZooKeeper 官方提供的架构

  • 端口映射可以访问, 但我还是习惯通过ip标识服务, 而不是端口标识服务. 主机(win11)通过容器ip直接连不通docker容器, 使用起来不是太方便. 尝试了网上一些方法, 不知为啥都么有成功... 比如: docker for windows 容器内网通过独立IP直接访问的方法 - brock0624 - 博客园 ipconfig 输出↓,不知道应该用哪个网卡来转发流量呢,就是说路由该怎么配

  • 在src目录下,我运行下面的命令 但得到以下错误。 创建集群[ERR]抱歉,无法连接到节点127.0.0.1:7000 但是,如果我使用命令“redis server redis.conf”在7000处启动节点,其中redis.conf在下面 端口7000群集已启用是群集配置文件nodes.conf群集节点超时10群集从属有效性系数0 appendonly是 同样,我成功地在所有端口启动了redi

  • 以下是我用来安装 zookeeper 的当前 Dockerfile ,然后在 CentOS 容器上运行它: 我最困惑的是我如何让两个服务作为单独的图像/容器运行,但仍然相互交互。https://stackoverflow.com/a/45111909/12585645 我也不知道如何将它设置为一个集群。如果可能的话,我宁愿不用docker compose。

  • 我正在尝试用CuratorFramework创建一个基于动物园管理员的应用程序。该应用程序必须能够在更多的节点上以仲裁的方式运行。应用程序的每个实例都嵌入了动物园管理员服务器和客户端的实例。节点在仲裁中被成功地删除。每个节点都向 /workers/active/node1写入一个EPHEMERAL节点(“活动”是由领导者创建的PERSISTENT znode)。因为当客户端连接到动物园管理员服务器