docker-compose搭建zookeeper集群

1.拉取镜像

docker pull zookeeper:3.4.11

2.zookeeper集群搭建

mkidr zk-cluster
cd zk-cluster

vim docker-compose.yml

写入如下内容

version: '2'
services:
    zoo1:
        image: zookeeper:3.4.11
        restart: always
        container_name: zoo1
        ports:
            - "2181:2181"
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo2:
        image: zookeeper:3.4.11
        restart: always
        container_name: zoo2
        ports:
            - "2182:2181"
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo3:
        image: zookeeper:3.4.11
        restart: always
        container_name: zoo3
        ports:
            - "2183:2181"
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

这个配置文件会告诉 Docker 分别运行三个 zookeeper 镜像, 并分别将本地的 2181, 2182, 2183 端口绑定到对应的容器的2181端口上(每个zookeeper容器的默认端口都是2181,这句话意思也就是说,将宿主机的2181、2182、2183这3个端口号,分别映射到3个zookeeper容器的2181端口)。
ZOO_MY_ID 和 ZOO_SERVERS 是搭建 ZK 集群需要设置的两个环境变量,其中 ZOO_MY_ID 表示 ZK 服务的 id,它是1-255 之间的整数,必须在集群中唯一;ZOO_SERVERS 是ZK 集群的主机列表。

3.运行

接着我们在 docker-compose.yml 所在的目录下运行:

COMPOSE_PROJECT_NAME=zk_cluster docker-compose up

即可启动 ZK 集群了。

注意:这种方式非后台运行,当执行 Ctrl + C 组合键的时候,所有的ZK容器都会停止运行。

以后台方式运行docker-compose

COMPOSE_PROJECT_NAME=zk_cluster docker-compose up -d

4.查看启动的ZK集群

执行上述命令成功后,接着新开启一个终端,然后在新终端界面中,首先进入zk-cluster目录,在该目录下运行以下命令可以查看启动的 ZK 容器:

COMPOSE_PROJECT_NAME=zk_cluster docker-compose ps

5.测试连接ZK集群

通过上面的图,可以看到3个ZK容器的ID信息。

这里我们先进入zoo1这个容器,查看ZK的信息,执行以下命令:

docker exec -it zoo1 zkServer.sh status

docker exec -it zoo2 zkServer.sh status

docker exec -it zoo3 zkServer.sh status

posted @ 2022-04-22 14:40  if年少有为  阅读(1005)  评论(0编辑  收藏  举报