单台Linux服务器中使用docker搭建Zookeeper集群
1.准备
本次使用的linux是centos7,并且已经安装好了docker
2.拉取镜像
docker pull zookeeper
3.搭建集群
本次创建了3个zookeeper节点来搭建集群,官方推荐使用2n+1个节点搭建集群。
(1)启动三个zookeeper容器,运行下面三条命令。
docker run --name zk01 -p 2181:2181 -d zookeeper
docker run --name zk02 -p 2182:2181 -d zookeeper
docker run --name zk03 -p 2183:2181 -d zookeeper
查看docker运行的镜像
docker ps
(2)查看容器的IPAddress
zk01
docker inspect zk01
zk02
docker inspect zk02
zk03
docker inspect zk03
对应的关系为
zk01 172.17.0.2
zk02 172.17.0.3
zk03 172.17.0.4
(3)修改配置文件
docker exec -it zk01 bash
查看配置文件
cd /conf/
启动zookeeper容器时,需要使用配置文件zoo.cfg,所以要修改zoo.cfg文件,但是镜像中没有安装vi,vim工具,需要安装工具,因为镜像中的源速度比较慢,所以需要换个比较快的镜像,直接运行这段命令更改源,进行加速。
cat <<EOF >/etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
EOF
更新
apt-get update
安装vim工具
apt-get install vim
使用vim时可以使用以下命令设置显示行号
:set nu / :set number
或者使用以下命令取消显示行号
:set nonu / :set nonumber
修改zoo.cfg
vim zoo.cfg
在配置zoo.cfg文件中添加以下内容
clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
server.1=172.17.0.2:2888:3888;2181
server.2=172.17.0.3:2888:3888;2181
server.3=172.17.0.4:2888:3888;2181
其中clientPort必须加,在server的最后要把clientPort添加上否则可能会报clientPort not fount的错误。
2888 集群内机器通讯使用(Leader监听此端口)
3888 选举leader使用
进入data目录
cd /data
使用vim命令修改myid的内容
server.1 对应的myid内容为 1
server.2 对应的myid内容为 2
server.3 对应的myid内容为 3
修改完毕以后可以使用命令查看一下
cat myid
接下来针对zk02,zk03进行重复“(3)修改配置文件”操作,其中的参数内容要根据zk02,zk03的值进行修改
3启动
打开三个窗口,分别进入三个容器内部,并切换到bin目录
zk01
docker exec -it zk01 bash
cd bin
ls
zk02
docker exec -it zk02 bash
cd bin
ls
zk03
docker exec -it zk03 bash
cd bin
ls
对zookeeper可以使用以下命令
启动zookeeper服务
zkServer.sh start
重启zookeeper服务
zkServer.sh restart
停止zookeeper服务
zkServer.sh stop
zookeeper服务的状态
zkServer.sh status
zookeeper集群搭建完成。