docker-compose搭建zookeeper叢集
阿新 • • 發佈:2022-04-22
1.拉取映象
docker pull zookeeper:3.4.11
2.zookeeper叢集搭建
mkidr zk-cluster
cd zk-cluster
vim docker-compose.yml
寫入如下內容
version: '2' services: zoo1: image: zookeeper:3.4.11 restart: always container_name: zoo1 ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 zoo2: image: zookeeper:3.4.11 restart: always container_name: zoo2 ports: - "2182:2181" environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 zoo3: image: zookeeper:3.4.11 restart: always container_name: zoo3 ports: - "2183:2181" environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
這個配置檔案會告訴 Docker 分別執行三個 zookeeper 映象, 並分別將本地的 2181, 2182, 2183 埠繫結到對應的容器的2181埠上(每個zookeeper容器的預設埠都是2181,這句話意思也就是說,將宿主機的2181、2182、2183這3個埠號,分別對映到3個zookeeper容器的2181埠)。
ZOO_MY_ID 和 ZOO_SERVERS 是搭建 ZK 叢集需要設定的兩個環境變數,其中 ZOO_MY_ID 表示 ZK 服務的 id,它是1-255 之間的整數,必須在叢集中唯一;ZOO_SERVERS 是ZK 叢集的主機列表。
3.執行
接著我們在 docker-compose.yml 所在的目錄下執行:
COMPOSE_PROJECT_NAME=zk_cluster docker-compose up
即可啟動 ZK 叢集了。
注意:這種方式非後臺執行,當執行 Ctrl + C 組合鍵的時候,所有的ZK容器都會停止執行。
以後臺方式執行docker-compose
COMPOSE_PROJECT_NAME=zk_cluster docker-compose up -d
4.檢視啟動的ZK叢集
執行上述命令成功後,接著新開啟一個終端,然後在新終端介面中,首先進入zk-cluster目錄,在該目錄下執行以下命令可以檢視啟動的 ZK 容器:
COMPOSE_PROJECT_NAME=zk_cluster docker-compose ps
5.測試連線ZK叢集
通過上面的圖,可以看到3個ZK容器的ID資訊。
這裡我們先進入zoo1這個容器,檢視ZK的資訊,執行以下命令:
docker exec -it zoo1 zkServer.sh status
docker exec -it zoo2 zkServer.sh status
docker exec -it zoo3 zkServer.sh status