第一步:首先下載Zookeeper的鏡像文件:
從倉庫中pull 這個zookeeper鏡像:docker pull jplock/zookeeper:3.4.8
然后docker images查看該鏡像:
最后一個可以看出鏡像文件已經下載下來了;
第二步:運行這個鏡像文件,即啟動一個Zookeeper的容器:docker run -t --name zookeeper1 jplock/zookeeper:3.4.8
會出現如下的信息,說明在啟動容器
當光標停止后,按Ctrl+C,然后通過docker ps -a來查看容器的信息。
第三步:進入Zookeeper容器中,並修改其配置信息。
3.1、進入容器:sudo docker exec -it ce1ca3255bf9 /bin/bash (ce1ca3255bf9 為容器的id)
通過ls命令來查看ZooKeeper容器下有哪些目錄和文件,發現和我們平時的操作系統上是一樣的。
圈起來的地方表示我們已經進入了容器了。
3.2、ps命令來查看容器中的進程運行情況;
第四步:修改ZooKeeper的配置文件;/opt/zooleeper/conf/zoo.cfg
4.1、通過如下命令: vi conf/zoo.cfg 來修改配置文件:
如上圖所示,在clientPort=2181下面添加一行:server.1=127.0.0.1:2888:3888
"server.id=host:port:port"標識了不同的ZooKeeper服務器的配置。用戶可以從"server.id=host:port:port"中讀取相關的配置信息。
參數中,host和port比較直觀,id表示的是不同的服務器。每台機器使用三個端口,分別是 clientPort:2181; port:2888; port:3888。其中2888端口是進行leader選舉的端口,而3888端口則是組成ZooKeeper服務的機器之間的通信端口。
4.2、創建data目錄(在dataDir=/tmp/zookeeper目錄下) 以及一個myid文件。vi myid
然后在myid里面輸入一個1,后保存。1就是id的值。
最后重啟zkServer.sh 就安裝好了。
bin/zkServer.sh restart
這時候ZooKeeper重啟成功了,另外一定要注意的是:zookeeper使用的端口有2181,2888,3888 所以要在centos7中開啟這些端口,首先exit命令退出容器;
開啟端口,下面三行命令必須是手動敲進去,好像復制進去的系統不識別,至少我是這樣的。
firewall-cmd -–zone=public –-add-port=2181/tcp –-permanent
firewall-cmd -–zone=public –-add-port=2888/tcp –-permanent
firewall-cmd -–zone=public –-add-port=3888/tcp –-permanent
–-zone #作用域
–-add-port=2181/tcp #添加端口,格式為:端口/通訊協議
–-permanent #永久生效,沒有此參數重啟后失效
重啟防火牆
firewall-cmd –-reload
另外zookeeper的源碼導入到eclipse中的方法參考如下連接:
https://my.oschina.net/xiaohui0110/blog/810237