自己學Docker:15.Docker使用實戰--zookeeper叢集部署
阿新 • • 發佈:2019-02-15
- 使用Docker映象
- 通過Dockerfile構建
- 通過docker stack deploy(或者docker-compose)
1,2可以歸為一種,即單個應用方式: Dockerfile -> 映象 -> 容器(docker run) 。對於搭建叢集環境的話,Docker Stack方式實施和管理更為方便。所以這裡搭建一個zookeeper的叢集環境就不再使用1,2種,想,具體方式可以參見Docker建立MySQL服務。
zookeeper.yml
通過docker stack deploy方式首先要編寫yaml檔案。樣例可以參見dockerhub的zookeeper映象的介紹
如下:
version: '3.1'
services:
zoo1:
image: zookeeper
restart: always
hostname: 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
restart: always
hostname: 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
restart: always
hostname: 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
上面的檔案建立了三個zookeeper的叢集服務,以複製模式(replicated mode)啟動Zookeeper,並將容器內的2181埠分別對映到主機的2181,2182,2183。
當然,嚴格的說,這個也不能說是叢集模式。畢竟所有容器都執行再同一主機,如果宕機,所有的zookeeper伺服器都將處於離線狀態。
執行,生成服務
採用如下命令:
sudo docker stack deploy -c zookeeper.yml zk
檢視服務狀態:
sudo docker stack services zk
連線zookeeper服務
zkCli.sh
./zkCli.sh -server 127.0.0.1:2181
可以成功連線到上面建立的zookeeper服務。