zoukankan      html  css  js  c++  java
  • Zookeeper——Docker下安装部署

    单节点安装

    一、 环境说明

    • docker: 18.09.9-ce
    • zookeeper: 3.5.6

    二、 拉取 zookeeper 镜像

    • 拉取镜像
    docker pull zookeeper

    默认是摘取最新版本 zookeeper:latest

    • 查看当前镜像

    三、 准备工作

    将它部署在 /usr/local/zookeeper 目录下:

    cd /usr/local && mkdir zookeeper && cd zookeeper

    创建data目录,用于挂载容器中的数据目录:

    mkdir data

    四、 正式部署

    • 部署命令:
    docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v $PWD/data:/data --name zookeeper --restart always zookeeper
    • 命令详细说明:
    -e TZ="Asia/Shanghai" # 指定上海时区 
    -d # 表示在一直在后台运行容器
    -p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
    --name # 设置创建的容器名称
    -v # 将本地目录(文件)挂载到容器指定目录;
    --restart always #始终重新启动zookeeper
    • 查看容器启动情况:
    docker ps -a

    注:状态(STATUS)为Up,说明容器已经启动成功。

    五、 测试

    • 使用zk命令行客户端连接zk

    docker run -it --rm --link zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper

    说明:-server zookeeper是启动zkCli.sh的参数

    六、 其它命令

    # 查看zookeeper容器实例进程信息
    docker top zookeeper
    
    # 停止zookeeper实例进程
    docker stop zookeeper
    
    # 启动zookeeper实例进程
    docker start zookeeper
    
    # 重启zookeeper实例进程
    docker restart zookeeper
    
    # 查看zookeeper进程日志
    docker logs -f zookeeper
    
    # 杀死zookeeper实例进程
    docker kill -s KILL zookeeper
    
    # 移除zookeeper实例
    docker rm -f -v zookeeper

    集群方式安装

    集群方式选择使用docker-compose来完成。

    一、安装docker-compose

    curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose

    二、配置docker-compose

    编写配置文件,并将其命名为:docker-compose.ymldocker-compose默认配置文件名)
    配置文件内容:

    version: '2'
    services:
        zoo1:
            image: zookeeper
            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
            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
            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这个端口上。
    ZOO_MY_ID:表示zk服务的ID, 取值为1-255之间的整数,且必须唯一
    ZOO_SERVERS:表示zk集群的主机列表

    三、启动zookeeper集群

    docker-compose up -d

    该命令执行需要在docker-compose配置文件的目录下执行,结果如下:

    [root@izbp13xko46hud9vfr5s94z conf]# docker-compose up -d 
    Starting zoo1 ... done
    Starting zoo2 ... done
    Starting zoo3 ... done
    [root@izbp13xko46hud9vfr5s94z conf]# 

    四、查看zookeeper集群实例

    • 通过docker ps查看

    [root@izbp13xko46hud9vfr5s94z ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    e53b4c838001 zookeeper "/docker-entrypoint.…" 4 minutes ago Up 44 seconds 2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp zoo1
    19282fb6f9b4 zookeeper "/docker-entrypoint.…" 4 minutes ago Up 44 seconds 2888/tcp, 3888/tcp, 0.0.0.0:2182->2181/tcp zoo2
    099b926fa2d3 zookeeper "/docker-entrypoint.…" 4 minutes ago Up 44 seconds 2888/tcp, 3888/tcp, 0.0.0.0:2183->2181/tcp zoo3

    • 通过docker-compose ps查看
    [root@izbp13xko46hud9vfr5s94z conf]# docker-compose ps 
    Name              Command               State                     Ports                   
    ------------------------------------------------------------------------------------------
    zoo1   /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp
    zoo2   /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:2182->2181/tcp, 2888/tcp, 3888/tcp
    zoo3   /docker-entrypoint.sh zkSe ...   Up      0.0.0.0:2183->2181/tcp, 2888/tcp, 3888/tcp
    [root@izbp13xko46hud9vfr5s94z conf]# 

    注:这个命令需要在docker-compose配置文件下执行。 

    五、管理docker-compose服务

    # 停止docker-compose服务
    docker-compose stop

    # 启动docker-compose服务
    docker-compose start
    # 重启docker-compose服务
    docker-compose restart

    六、查看zookeeper集群节点主从关系

    使用docker exec -it zoo1 /bin/bash这个命令进入zoo1节点中,之后输入./bin/zkServer.sh statu来查看节点主从关系

    [root@izbp13xko46hud9vfr5s94z conf]# docker exec -it zoo1 /bin/bash 
    bash-4.4# ./bin/zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /conf/zoo.cfg
    Mode: follower
    bash-4.4# 
  • 相关阅读:
    Cocos游戏引擎,让小保安成就大梦想
    Android 高仿QQ5.2双向側滑菜单DrawerLayout实现源代码
    Java中字符串相等与大小比較
    Android四大基本组件之 Activity
    C++基础学习教程(五)
    HAWQ技术解析(八) —— 大表分区
    Jenkins 安装与使用--实例
    Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
    Mycat(4):消息表mysql数据库分表实践
    谋哥:《App自推广》开篇之回到远古人类
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/12325410.html
Copyright © 2011-2022 走看看