美文网首页
记一次使用docker-compose搭建zookeeper集群

记一次使用docker-compose搭建zookeeper集群

作者: 杨涛_440e | 来源:发表于2020-06-20 13:19 被阅读0次
    1. 拉取zookeeper
    > docker pull zookeeper
    

    2.预设文件目录结构

    文件目录结构 /usr/local/zookeeper 下建立三个节点文件
    ./node1 ./node2 ./node3

    每个node文件中新建三个存放数据的文件分别是
    ./conf ./data ./datalog

    然后在node文件同级目录建立docker-compose.yml文件 (这个文件就是配置zookeeper集群信息的配置文件)

    具体结构如下图:


    深度截图_选择区域_20200620132818.png
    > sudo vim docker-compose.yml
    

    配置参数如下:

    version: '3'#版本号固定写法
    services:
        zoo1:
            image: zookeeper #使用的镜像
            restart: always #宕机后自动重启
            hostname: zoo1 #承载zookeeper容器的主机(父容器)名 可省略
            container_name: zoo1 #容器名
            privileged: true #使用该参数,container内的root拥有真正的root权 privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker容器中启动docker容器。
            ports: #主机和容器的端口映射
                - "2181:2181" 
            volumes:  #创建zookeeper容器在宿主机的挂载目录
                - /usr/local/zookeeper/node1/data:/data #数据
                - /usr/local/zookeeper/node1/datalog:/datalog #日志
                - /usr/local/zookeeper/node1/conf:/conf #配置文件
            environment: #zookeeper3.4 和zookeeper 3.5在docker环境下搭建集群差异就在这里 #zoo1为容器名,也是主机名,意思为使用容器的内网通信(1)Zookeeper3.5 中指定的 ZOO_SERVERS 参数的 IP 地址和端口号后面多加了 “;2181 ”。(2)ZOO_SERVERS 指定ip时本机的ip地址写 0.0.0.0。
                ZOO_MY_ID: 1
                ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
        zoo2:
            image: zookeeper
            restart: always
            hostname: zoo2
            container_name: zoo2
            privileged: true
            ports:
                - "2182:2181"
            volumes:
                #注意 volumes的参数是string 所以不能在下面数据的:后面加空格 还有-后面一定要有空格 这两条如果没有写好 都会报错
               - /usr/local/zookeeper/node2/data:/data
               - /usr/local/zookeeper/node2/datalog:/datalog
               - /usr/local/zookeeper/node2/conf:/conf
            environment:
                ZOO_MY_ID: 2
                ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181
        zoo3:
            image: zookeeper
            restart: always 
            hostname: zoo3
            container_name: zoo3
            privileged: true
            ports: 
                - "2183:2181"
            volumes:
               - /usr/local/zookeeper/node3/data:/data
               - /usr/local/zookeeper/node3/datalog:/datalog
               - /usr/local/zookeeper/node3/conf:/conf
            environment:
                ZOO_MY_ID: 3
                ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
    
    

    配置确认无误后 wq! 保存退出
    接下来执行

    > docker-compose up -d
    

    如下图说明执行成功! 集群建立起来了

    深度截图_选择区域_20200620131503.png
    > docker-compose ps       #查看集群的信息
    > docker exec -it zoo3 bash ./bin/zkServer.sh status #查看节点的信息
    > docker exec -it zoo1 bash ./bin/bash  #进入任意一个节点开启客户端
    > ls
    > ./bin/zkCli.sh -server 127.0.0.1:2181
    

    如下图:


    深度截图_选择区域_20200620131225.png 深度截图_选择区域_20200620131800.png

    至此集群搭建完成 !!!!

    借鉴:https://blog.csdn.net/qq_37356556/article/details/104151047

    相关文章

      网友评论

          本文标题:记一次使用docker-compose搭建zookeeper集群

          本文链接:https://www.haomeiwen.com/subject/uliwxktx.html