docker搭建Zookeeper集群的方法步驟
0.前言
之前在學(xué)springcloud的時(shí)候,提到有些項(xiàng)目還是使用zookeeper作為注冊(cè)中心。
因此決定掌握這個(gè)技能,但是本地為了測(cè)試而部署一套zookeeper集群還是比較麻煩的。
所以打算使用docker在本地上搭建zookeeper集群
1.前提
- 電腦里安裝過(guò)docker
- 了解部分docker命令
2.開始搭建
準(zhǔn)備好一個(gè)空目錄,需要建3個(gè)文件夾,然后每個(gè)文件夾里面建2個(gè)文件,如下所示:
.
├── zk1 (文件夾)
│ ├── myid (文件)
│ └── zoo.cfg (文件)
├── zk2(文件夾)
│ ├── myid(文件)
│ └── zoo.cfg(文件)
└── zk3(文件夾)
├── myid(文件)
└── zoo.cfg(文件)解釋
| 文件 | 文件里面內(nèi)容 | |
|---|---|---|
| zk1/myid | Zookeeper第一個(gè)節(jié)點(diǎn)的id配置,只需要一個(gè)數(shù)字 | 100 |
| zk1/zoo.cfg | Zookeeper第一個(gè)節(jié)點(diǎn)的配置信息 | 之后有個(gè)例子 |
| zk2/myid | Zookeeper第二個(gè)節(jié)點(diǎn)的id配置,只需要一個(gè)數(shù)字 | 200 |
| zk2/zoo.cfg | Zookeeper第二個(gè)節(jié)點(diǎn)的配置信息 | 之后有個(gè)例子 |
| zk3/myid | Zookeeper第三個(gè)節(jié)點(diǎn)的id配置,只需要一個(gè)數(shù)字 | 300 |
| zk3/zoo.cfg | Zookeeper第三個(gè)節(jié)點(diǎn)的配置信息 | 之后有個(gè)例子 |
創(chuàng)建zoo.cfg
3個(gè)zoo.cfg里面內(nèi)容是一樣的,如下所示
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/zkData clientPort=2181 ? server.100=127.0.0.1:2888:3888 server.200=127.0.0.1:2888:3888 server.300=127.0.0.1:2888:3888
比較奇怪的是最后3行,這3行也是這個(gè)集群能否創(chuàng)建的關(guān)鍵
server.100=127.0.0.1:2888:3888 server.200=127.0.0.1:2888:3888 server.300=127.0.0.1:2888:3888
他們都形如
server.A=B:C:D
具體含義如下
| 參數(shù) | 含義 |
|---|---|
| server | 常量,這個(gè)不用改 |
| A | 就是myid,在【開始搭建】的【解釋】里提到過(guò)的數(shù)字 |
| B | 服務(wù)器地址,因?yàn)槎际潜镜丨h(huán)境搭建的,就是127.0.0.1 |
| C | 信息交互端口,不用改,就2888挺好 |
| D | 選舉端口,不用改,就3888挺好 |
3.docker搭建
當(dāng)3個(gè)文件夾,6個(gè)目錄創(chuàng)建好了以后,就可以使用命令進(jìn)行搭建了
1.docker創(chuàng)建網(wǎng)絡(luò)
創(chuàng)建docker網(wǎng)絡(luò),是為了保證3個(gè)容器可以互相通信
命令如下:其中network-zk-nb是自己取的,后面創(chuàng)建容器時(shí)會(huì)用到
docker network create network-zk-nb
2.啟動(dòng)第1個(gè)zk節(jié)點(diǎn)
如果是linux或mac
docker run -d --name zk1 \ --restart always \ -e JVMFLAGS="-Xmx1024m" \ -v /Users/admin/env/zk/zk1/zoo.cfg:/conf/zoo.cfg \ -v /Users/admin/env/zk/zk1/myid:/data/myid \ --network network-zk-nb --network-alias zk1 \ -p 2181:2181 zookeeper:3.5.7
如果是windows,那么就改為
docker run -d --name zk1 ^ --restart always ^ -e JVMFLAGS="-Xmx1024m" ^ -v ./zk1/zoo.cfg:/conf/zoo.cfg ^ -v ./zk1/zoo.cfg:/data/myid ^ --network network-zk-nb --network-alias zk1 ^ -p 2181:2181 zookeeper:3.5.7
PS:因?yàn)槔锩嬗玫搅?/,也就是相對(duì)目錄,所以你必須要在3個(gè)目錄所在的目錄下才能使用這條命令
3.啟動(dòng)第2個(gè)zk節(jié)點(diǎn)
docker run -d --name zk2 \ --restart always \ -e JVMFLAGS="-Xmx1024m" \ -v /Users/admin/env/zk/zk2/zoo.cfg:/conf/zoo.cfg \ -v /Users/admin/env/zk/zk2/myid:/data/myid \ --network network-zk-nb --network-alias zk2 \ -p 2182:2181 zookeeper:3.5.7
4.啟動(dòng)第3個(gè)zk節(jié)點(diǎn)
docker run -d --name zk3 \ --restart always \ -e JVMFLAGS="-Xmx1024m" \ -v /Users/admin/env/zk/zk3/zoo.cfg:/conf/zoo.cfg \ -v /Users/admin/env/zk/zk3/myid:/data/myid \ --network network-zk-nb --network-alias zk3 \ -p 2183:2181 zookeeper:3.5.7
至此zookeeper的集群環(huán)境搭建完畢
4.訪問(wèn)節(jié)點(diǎn)
1.進(jìn)入zk第一個(gè)節(jié)點(diǎn)的docker容器內(nèi)部
docker exec -it zk1 /bin/bash
查看容器目錄
ls -l
-rw-r--r-- 1 zookeeper zookeeper 11358 Sep 13 2018 LICENSE.txt -rw-r--r-- 1 zookeeper zookeeper 432 Feb 10 2020 NOTICE.txt -rw-r--r-- 1 zookeeper zookeeper 1560 Feb 7 2020 README.md -rw-r--r-- 1 zookeeper zookeeper 1347 Feb 7 2020 README_packaging.txt drwxr-xr-x 2 zookeeper zookeeper 4096 Feb 10 2020 bin drwxr-xr-x 2 zookeeper zookeeper 4096 May 16 2020 conf drwxr-xr-x 5 zookeeper zookeeper 4096 Feb 10 2020 docs drwxr-xr-x 2 zookeeper zookeeper 4096 May 16 2020 lib
進(jìn)入bin目錄
cd bin
查看bin目錄
ls -l
total 56 -rwxr-xr-x 1 zookeeper zookeeper 232 May 4 2018 README.txt -rwxr-xr-x 1 zookeeper zookeeper 2067 Feb 7 2020 zkCleanup.sh -rwxr-xr-x 1 zookeeper zookeeper 1158 Feb 10 2020 zkCli.cmd -rwxr-xr-x 1 zookeeper zookeeper 1621 Feb 7 2020 zkCli.sh -rwxr-xr-x 1 zookeeper zookeeper 1766 Feb 7 2020 zkEnv.cmd -rwxr-xr-x 1 zookeeper zookeeper 3690 Jan 31 2020 zkEnv.sh -rwxr-xr-x 1 zookeeper zookeeper 4573 Feb 7 2020 zkServer-initialize.sh -rwxr-xr-x 1 zookeeper zookeeper 1286 Jan 31 2020 zkServer.cmd -rwxr-xr-x 1 zookeeper zookeeper 9386 Feb 7 2020 zkServer.sh -rwxr-xr-x 1 zookeeper zookeeper 996 Oct 3 2019 zkTxnLogToolkit.cmd -rwxr-xr-x 1 zookeeper zookeeper 1385 Feb 7 2020 zkTxnLogToolkit.sh
2.使用zk的客戶端進(jìn)行訪問(wèn)
zkCli.sh
WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0]
3.在zk中使用命令
ls /
至此,zk集群的搭建與使用就已經(jīng)完成,后面學(xué)習(xí)的就是使用java的方式來(lái)連接
到此這篇關(guān)于docker搭建Zookeeper集群的方法步驟的文章就介紹到這了,更多相關(guān)docker搭建Zookeeper集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker移除鏡像幾種不同的方法實(shí)戰(zhàn)記錄
在Docker實(shí)戰(zhàn)中,合理刪除不再需要的鏡像,有助于釋放寶貴的磁盤空間,刪除Docker鏡像可以通過(guò)多種方式,包括刪除單個(gè)鏡像、強(qiáng)制刪除正在使用的鏡像、刪除未被任何容器引用的所有鏡像以及刪除所有鏡像等,需要的朋友可以參考下2024-11-11
Docker部署及使用壓測(cè)神器sysbench的方法
sysbench 是一個(gè)開源跨平臺(tái)的多線程性能測(cè)試工具,這篇文章主要介紹了Docker部署及使用壓測(cè)神器sysbench的相關(guān)知識(shí),需要的朋友可以參考下2022-08-08
Docker Buildx 簡(jiǎn)介與安裝指南(最新推薦)
Docker Buildx 是 Docker 官方推出的一款增強(qiáng)型構(gòu)建工具,旨在簡(jiǎn)化和優(yōu)化多架構(gòu)容器映像的構(gòu)建流程,這篇文章主要介紹了Docker Buildx 簡(jiǎn)介與安裝指南,需要的朋友可以參考下2024-08-08
Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署
這篇文章主要介紹了Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑(問(wèn)題小結(jié))
這篇文章主要介紹了Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
docker部署springboot和vue項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了docker部署springboot和vue項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
解決docker拉取鏡像報(bào)錯(cuò):error pulling image configurat
在使用Docker拉取Kafka鏡像時(shí)可能會(huì)遇到"error pulling image configuration"的錯(cuò)誤,這可以通過(guò)編輯Docker配置文件并重啟Docker服務(wù)來(lái)解決,具體步驟包括:1. 編輯Docker配置文件;2. 使用命令systemctl restart docker重啟Docker服務(wù)2024-11-11
樹莓派系列之使用docker安裝青龍面板和改端口號(hào)的配置問(wèn)題
這篇文章主要介紹了樹莓派系列之使用docker安裝青龍面板和改端口號(hào)的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02

