拉取zookeeper鏡像
docker pull zookeeper
根據鏡像創建docker容器
分別創建容器zookeeper、zookeeper2、zookeeper3這三個容器
docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest
docker run --privileged=true -d --name zookeeper2 --publish 2182:2181 -d zookeeper:latest
docker run --privileged=true -d --name zookeeper3 --publish 2183:2181 -d zookeeper:latest
注意,此時這三個容器還處于單機狀態,并沒有搭建好集群,我們需要規劃一下這三個容器
| 容器id(已自己的為準) | name | 虛擬機埠 | 容器埠 | 容器ip | myid | 職責(看啟動順序,詳情見zookeeper集群leader選取機制) | |
| 7c............. | zookeeper | 2181 | 2181 | 172.17.0.2 | 1 | leader | |
| ee................ | zookeeper2 | 2182 | 2181 | 172.17.0.3 | 2 | follower | |
| ce.................... | zookeeper3 | 2183 | 2181 | 172.17.0.4 | 3 | follower |
修改這三個容器的組態檔(myid & zoo.cfg)
myid檔案地址:
- 進入容器docker exec 7c /bin/bash
- cd / 回到根目錄
- cd data
zoo.cfg檔案地址
- 進入容器docker exec 7c /bin/bash
- cd / 回到根目錄
- cd conf
在zoo.cfg檔案尾部添加以下配置
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
注意,server.后面的數字需要和你myid設定的一樣,IP就是你每個容器的ip,分別加到另外兩臺機器上
docker 查看容器IP方法:
[root@localhost ~]# docker inspect --format='{{.NetworkSettings.IPAddress}}' zookeeper
172.17.0.2
[root@localhost ~]# docker inspect --format='{{.NetworkSettings.IPAddress}}' zookeeper2
172.17.0.3
[root@localhost ~]# docker inspect --format='{{.NetworkSettings.IPAddress}}' zookeeper3
172.17.0.4
[root@localhost ~]#
我們啟動一下這三個容器
首先確保這三個容器都已經安裝了vim命令(若沒安裝,則執行apt-get update 和 apt-get install -y vim命令即可)
考慮到每次啟動都需要執行N次啟動命令,比較麻煩,這里直接寫兩個簡單的啟動&關閉腳本節省時間吧,腳本如下,
1.批量啟動腳本zookeeperbatchstart.sh
echo "=================================================="
docker restart 7c
echo "==================zookeeper1 start================"
docker restart ee
echo "==================zookeeper2 start================"
docker restart ce
echo "==================zookeeper3 start================"
2.批量關閉腳本zookeeperbatchstop.sh
echo "=================================================="
docker stop 7c
echo "==================zookeeper1 stop ================"
docker stop ee
echo "==================zookeeper2 stop ================"
docker stop ce
echo "==================zookeeper3 stop ================"
啟動后分別進入容器,如下圖,可以看到,zookeeper為leader,zookeeper2和zookeeper3為follower

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229819.html
標籤:其他
