1、拉取镜像
docker pull zookeeper:latest
2、创建实例
docker run --name zk1 -d zookeeper:latest
docker run --name zk2 -d zookeeper:latest
docker run --name zk3 -d zookeeper:latest
3、查询IP
docker inspect zk1
依次查询集群内所有实例的IP,对应记下。
4、进入容器,具体配置
docker exec -it zk1 /bin/bash
查看配置文件
cat /conf/zoo.cfg
可以看到启动端口是2181。
添加集群配置
server.1=172.17.0.2:2888:3888
server.2=172.17.0.3:2888:3888
server.3=172.17.0.4:2888:3888
server.1:表示zk服务编号
IP:这里的IP就是上面查出来的
2888:第一个端口,是leader用于与服务通信的端口
3888:第二个端口,是zk内部用于选举的端口
添加好查看后:
echo 1 > /data/myid
这里的1 就是server.n 的那个n,表示server的唯一编号。
5、重启zk
Ctrl + p + q 退出容器
docker restart zk1 zk2 zk3
重启后,查看运行状态(Windows需要在powershell中才有docker logs命令)
docker logs zk1
选举结束。
这里,一个简单的zk集群就搭建好了。
总结
1、这里是启动了三个实例,用了三个地址,同一个端口;
2、断断续续地,坑也踩了不少,一时不知从何写起了。。
有问题可以发邮件至yellowsunsna@163.com
共同进步,共同探讨。
下一篇预告:kafka集群。(不是为了搭kafka集群我才不会搭这个zk呢~~)