docker環境下安裝zookeeper3.5版本
說明
之前只是在虛擬機中安裝過zookeeper
,很是不方便。今天決定在docker
中安裝zookeeper
,網上的教程很多,但是基本都是相互抄襲,在安裝過程上遇見很多坑,在此記錄,給大家作爲一個參考,針對的是docker zookeeper3.5
官方鏡像,集羣搭建。只講述安裝過程,zk
詳細參數自行百度。
zookeeper安裝
1.docker
下載最新的zookeeper
鏡像
docker pull zookeeper
直接拉取官方最新版本
- 新建
docker-compose.yml
(任意目錄均可),配置啓動容器參數
直接附上docker-compose.yml
version: '2'
services:
zoo1:
image: zookeeper
restart: always
container_name: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo2:
image: zookeeper
restart: always
container_name: zoo2
ports:
- "2182:2181"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo3:
image: zookeeper
restart: always
container_name: zoo3
ports:
- "2183:2181"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
此處配置文件中,注意
ZOO_SERVERS: server
中的配置,zoo1:2888:3888;2181
中的2181
一定要寫(指定clientPort
),否則會報client port not found
的錯誤
- 進入
docker-compose.yml
所在目錄運行命令docker-compose up -d
(-d可以指定在後臺運行,否則會直接在當前shell中運行),如果沒有異常會在shell中輸出
- shell中執行命令
docker ps
查看當前容器是否正常工作
- 進入容器中查看
zookeeper
主從關係
. 運行命令docker exec -it zoo1 /bin/bash
進入容器
. 在zk
目錄下運行命令./bin/zkServer.sh status
查看zk主從狀態
- 客戶端連接zk
docker
所在宿主機下載zk
,並進入zk
目錄下面的bin
目錄,執行連接命令windows
客戶端執行.\zkCli.cmd -server localhost:2181,localhost:2182,localhost:2183
linux
客戶端執行.\zkCli.sh -server localhost:2181,localhost:2182,localhost:2183
顯示如下即服務正常
tip
docker安裝zk之後檢測zk是否正常運行
dcoker ps
查看容器是否均已啓動(未啓動,查看docker運行日誌,進行分析)- 用
zkCli
連接集羣,查看zk
是否能正常連接 - 如果不能正常連接,則進入容器中查看
zk
狀態以及zk
的運行日誌