获取镜像
# 查看可用的稳定版本sudo docker search zookeepersudo docker pull zookeeper:3.4.10sudo docker image ls |grep zookeeper
服务编排
mkdir -p /share/zookeeper && cd /share/zookeeperrm -rf /share/zookeeper/docker-compose.ymlvi /share/zookeeper/docker-compose.yml
服务编排内容如下:
version: "2"networks:zkCluster:services:zoo1:build: ./zookeeperrestart: alwayshostname: zoo1container_name: zoo1networks:- zkClusterports:- 2181:2181volumes:- ./zookeeper/zoo1/data:/data- ./zookeeper/zoo1/datalog:/datalogenvironment:ZOO_MY_ID: 1ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888zoo2:build: ./zookeeperrestart: alwayshostname: zoo2container_name: zoo2networks:- zkClusterports:- 2182:2181volumes:- ./zookeeper/zoo2/data:/data- ./zookeeper/zoo2/datalog:/datalogenvironment:ZOO_MY_ID: 2ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888zoo3:build: ./zookeeperrestart: alwayshostname: zoo3container_name: zoo3networks:- zkClusterports:- 2183:2181volumes:- ./zookeeper/zoo3/data:/data- ./zookeeper/zoo3/datalog:/datalogenvironment:ZOO_MY_ID: 3ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
服务配置
Φ 配置文件概览
以下配置相关文件保持与编排文件相同目录。
d zookeeper # 初始化配置d zoo1 # zoo1配置d data # 数据缓存目录d datalog # 日志目录d zoo2 # zoo2配置d data # 数据缓存目录d datalog # 日志目录d zoo3 # zoo3配置d data # 数据缓存目录d datalog # 日志目录- Dockerfile
Φ Dockerfile
FROM zookeeper:3.4.10
服务构建
cd /share/zookeepersudo docker-compose -f docker-compose.yml build --no-cache # 不带缓存构建(只创建镜像,不会启动容器)sudo docker-compose -f docker-compose.yml up -d # 构建后运行sudo docker-compose -f docker-compose.yml up --build # 跟踪方式构建,可用于调试
验证
cd /share/zookeeper# 查看进程sudo docker-compose -f docker-compose.yml ps# 查看zk状态(zoo1为容器名称)sudo docker exec -t zoo1 zkServer.sh status# zk节点操作验证(CRUD)sudo docker exec -it zoo1 zkCli.sh -server localhost:2181zkcli>> ls / # 查看zk根目录zkcli>> create /zk mydata # 创建zk节点zkcli>> get /zk # 查看zk节点数据zkcli>> set /zk "newData" # 更新zk节点数据zkcli>> delete /zk # 删除zk节点zkcli>> quit # 退出zkcli# 查看日志sudo docker logs zoo1sudo docker logs -f -t --tail=50 zoo1# 查看网络sudo docker network lssudo docker inspect zoo1# 停止sudo docker-compose -f docker-compose.yml stop# 移除sudo docker-compose -f docker-compose.yml down
宿主机或者其他局域网的机器,可以通过宿主机IP及暴露的端口访问zk集群(举例:192.168.0.101:2181,192.168.0.101:2182,192.168.0.101:2183)。
