在Docker中搭建zookeeper集群
1.下载zookeeper镜像
安装好Docker以后,在terminal中输入:
docker pull zookeeper
等待安装完成。
当出现类似以下结果时,表明下载成功:

2.启动zookeeper镜像
在terminal中输入:
docker run --name zookeeper01 -d zookeeper
后回车。改名领会在Docker后台运行一个 zookeeper 容器, 名字是 zookeeper01, 并且它默认会导出 2181 端口。
接下来,使用命令
docker logs -f zookeeper01
查看zookeeper的启动日志。

进入容器
sudo docker exec -it 8bb6a633f23c /bin/bash
其中,8bb6a633f23c为容器ID。
进入容器后,就相当于进入了一个Linux系统,可以在该容器中进行常用命令操作。
3.使用 ZK 命令行客户端连接 ZK
到此为止,启动的zookeeper容器zookeeper01并没有绑定到宿主主机,因此不能直接访问。
执行以下命令,以通过 Docker 的 link 机制来对这个 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.使用docker-compose搭建zookeeper集群
1.编写一个配置文件docker-compose.yml

这个配置文件会告诉 Docker 分别运行三个 zookeeper 镜像, 并分别将本地的 2181, 2182和2183 端口绑定到对应的容器的2181端口上。
ZOO_MY_ID和ZOO_SERVERS是搭建 ZK 集群需要设置的两个环境变量,其中ZOO_MY_ID表示ZK服务的 ID,它是1-255 之间的整数,必须在集群中唯一。ZOO_SERVERS是ZK 集群的主机列表。