docker安装zookeeper集群

47 篇文章 2 订阅
16 篇文章 0 订阅

1.下载镜像

docker pull zookeeper

2.启动容器(单节点)

docker run --name zookeeper01 -d zookeeper 

在Docker后台运行一个 zookeeper 容器, 名字是 zookeeper01, 并且它默认会导出 2181 端口。

3.使用 ZK 命令行客户端连接 ZK(单节点)

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

1.  启动一个 zookeeper 镜像, 并运行这个镜像内的 zkCli.sh 命令, 命令参数是 “-server zookeeper”;

2.将我们先前启动的名为 zookeeper01 的容器链接(link) 到我们新建的这个容器上, 并将其主机名命名为 zookeeper。

当我们执行了这个命令后,就可以像正常使用 zookeeper 命令行客户端一样操作 zookeeper 服务了。

4. ZK 集群的搭建

安装docker compose插件 

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

授权

cd /usr/local/bin

chmod 777 docker-compose

查看版本

docker-compose --version

新建网络

docker network create --driver bridge --subnet 172.23.0.0/25 --gateway 172.23.0.1  zookeeper_network 

新建docker配置文件

mkdir -p /usr/local/docker-compose/zk/{zk1,zk2,zk3}/{data,datalog}

cd /usr/local/docker-compose/zk

vi docker-compose.yml

version: '2'

services:
  zoo1:
    image: zookeeper
    restart: always
    hostname: zoo1
    container_name: zoo1
    ports:
    - 2181:2181
    volumes:
    - "/usr/local/docker-compose/zk/zk1/data:/data"
    - "/usr/local/docker-compose/zk/zk1/datalog:/datalog"
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
    networks:
      default:
        ipv4_address: 172.23.0.11

  zoo2:
    image: zookeeper
    restart: always
    hostname: zoo2
    container_name: zoo2
    ports:
    - 2180:2181
    volumes:
    - "/usr/local/docker-compose/zk/zk2/data:/data"
    - "/usr/local/docker-compose/zk/zk2/datalog:/datalog"
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
    networks:
      default:
        ipv4_address: 172.23.0.12

  zoo3:
    image: zookeeper
    restart: always
    hostname: zoo3
    container_name: zoo3
    ports:
    - 2179:2181
    volumes:
    - "/usr/local/docker-compose/zk/zk3/data:/data"
    - "/usr/local/docker-compose/zk/zk3/datalog:/datalog"
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
    networks:
      default:
        ipv4_address: 172.23.0.13

networks:
  default:
    external:
      name: zookeeper_network

启动集群,在 docker-compose.yml 目录下运行

docker-compose up -d

查看运行状态,在 docker-compose.yml 目录下运行

docker-compose ps

5.客户端连接 ZK 集群

使用docker命令连接

通过 docker-compose ps 命令, 我们知道启动的 ZK 集群的三个主机名分别是 zoo1, zoo2, zoo3, 因此我们分别 link 它们即可:

docker run -it --rm --link zoo1:zk1 --link zoo2:zk2 --link zoo3:zk3 --net zookeeper_network zookeeper zkCli.sh -server zk1:2181,zk2:2181,zk3:2181

 

使用本地主机连接

因为我们分别将 zoo1, zoo2, zoo3 的 2181 端口映射到了 本地主机的2181, 2180, 2179 端口上, 因此我们使用如下命令即可连接 ZK 集群了:

docker exec -it zoo3 /bin/bash

cd bin

zkCli.sh -server localhost:2181,localhost:2180,localhost:2179

 zk常用命令

create /test "test"

get /test

set /test "hello test"

delete /test

quit 

6.查看集群

我们可以通过 nc 命令连接到指定的 ZK 服务器, 然后发送 stat 可以查看 ZK 服务的状态, 例如:

yum install nc

echo stat | nc 127.0.0.1 2181

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值