拉取镜像
docker pull zookeeper:latest

获取镜像基本信息
docker inspect zookeeper

mkdir /opt/zookeeper -p

vim /opt/zookeeper/Dockerfile

FROM zookeeper:3.5.6
EXPOSE 2181
EXPOSE 2182
EXPOSE 2183
EXPOSE 2888
EXPOSE 3888
EXPOSE 8080

单机

sudo mkdir -p /var/lib/zookeeper;sudo chmod -R 777 /var/lib/zookeeper

sudo mkdir -p /var/logs/zookeeper;sudo chmod -R 777 /var/logs/zookeeper

vim /opt/zookeeper/conf/zoo.cfg

dataDir=/var/lib/zookeeper
dataLogDir=/var/logs/zookeeper
clientPort=2181
4lw.commands.whitelist=*
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true

vim /opt/zookeeper/docker-compose.yml

version: '3.6'
services:
zookeeper:
image: v-zookeeper
container_name: zookeeper
build:
context: .
dockerfile: Dockerfile
restart: always
ports:
- "2181:2181"
- "28080:8080"
volumes:
- "/var/lib/zookeeper:/var/lib/zookeeper"
- "/var/logs/zookeeper:/var/logs/zookeeper"

伪集群

sudo mkdir -p /var/lib/zookeeper/node1;sudo chmod -R 777 /var/lib/zookeeper/node1
sudo mkdir -p /var/log/zookeeper/node1/version-2;sudo chmod -R 777 /var/log/zookeeper/node1/version-2
mkdir vim /opt/zookeeper/node1/conf -p
vim /opt/zookeeper/node1/conf/zoo.cfg

dataDir=/data
dataLogDir=/datalog
clientPort=2181
4lw.commands.whitelist=*
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
admin.enableServer=true
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
quorumListenOnAllIPs=true

sudo mkdir -p /var/lib/zookeeper/node2;sudo chmod -R 777 /var/lib/zookeeper/node2
sudo mkdir -p /var/log/zookeeper/node2/version-2;sudo chmod -R 777 /var/log/zookeeper/node2/version-2
mkdir vim /opt/zookeeper/node2/conf -p
vim /opt/zookeeper/node2/conf/zoo.cfg

dataDir=/data
dataLogDir=/datalog
clientPort=2181
4lw.commands.whitelist=*
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
admin.enableServer=true
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
quorumListenOnAllIPs=true

ZOO_SERVERS中的zookeeper为容器名

sudo mkdir -p /var/lib/zookeeper/node3;sudo chmod -R 777 /var/lib/zookeeper/node3
sudo mkdir -p /var/log/zookeeper/node3/version-2;sudo chmod -R 777 /var/log/zookeeper/node3/version-2
mkdir vim /opt/zookeeper/node3/conf -p
vim /opt/zookeeper/node3/conf/zoo.cfg

dataDir=/data
dataLogDir=/datalog
clientPort=2181
4lw.commands.whitelist=*
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
admin.enableServer=true
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
quorumListenOnAllIPs=true

vim /opt/zookeeper/docker-compose.yml

version: '3.6'
services:
zookeeper1:
image: v-zookeeper1
container_name: zookeeper1
build:
context: .
dockerfile: Dockerfile
hostname: zookeeper1
restart: always
ports:
- "2181:2181"
- "18081:8080"
environment:
ZOO_MY_ID: 1
volumes:
- "./node1/conf/zoo.cfg:/conf/zoo.cfg"
- "/var/lib/zookeeper/node1:/data"
- "/var/log/zookeeper/node1/version-2:/datalog/version-2"
zookeeper2:
image: v-zookeeper2
container_name: zookeeper2
build:
context: .
dockerfile: Dockerfile
hostname: zookeeper2
restart: always
ports:
- "2182:2181"
- "18082:8080"
environment:
ZOO_MY_ID: 2
volumes:
- "./node2/conf/zoo.cfg:/conf/zoo.cfg"
- "/var/lib/zookeeper/node2:/data"
- "/var/log/zookeeper/node2/version-2:/datalog/version-2"
zookeeper3:
image: v-zookeeper3
container_name: zookeeper3
build:
context: .
dockerfile: Dockerfile
hostname: zookeeper3
restart: always
ports:
- "2183:2181"
- "18083:8080"
environment:
ZOO_MY_ID: 3
volumes:
- "./node3/conf/zoo.cfg:/conf/zoo.cfg"
- "/var/lib/zookeeper/node3:/data"
- "/var/log/zookeeper/node3/version-2:/datalog/version-2"

查看状态docker exec -it zookeeper2 bash ./bin/zkServer.sh status

集群

集群模式必须设置clientPort的值

sudo mkdir -p /etc/zookeeper;sudo chmod -R 777 /etc/zookeeper
sudo mkdir -p /var/lib/zookeeper/version-2;sudo chmod -R 777 /var/lib/zookeeper/version-2
sudo mkdir -p /var/log/zookeeper/version-2;sudo chmod -R 777 /var/log/zookeeper/version-2
vim /opt/zookeeper/Dockerfile
FROM zookeeper:3.5.6
EXPOSE 2181
EXPOSE 2888
EXPOSE 3888
EXPOSE 8080

服务器1、2、3:

vim /etc/zookeeper/zoo.cfg

dataDir=/data
dataLogDir=/datalog
clientPort=2181
4lw.commands.whitelist=*
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
admin.enableServer=true
server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888
quorumListenOnAllIPs=true

服务器1:

vim /opt/zookeeper/docker-compose.yml

version: '3.7'
services:
zookeeper:
image: v-zookeeper
container_name: zookeeper
build:
context: .
dockerfile: Dockerfile
restart: always
privileged: true
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
- "18080:8080"
environment:
- JAVA_OPTS=-Xms256m -Xmx256m -Xmn100m
- ZOO_MY_ID=1
volumes:
- "/etc/zookeeper/zoo.cfg:/conf/zoo.cfg"
- "/var/lib/zookeeper/version-2:/data/version-2"
- "/var/log/zookeeper/version-2:/datalog/version-2"
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "100"

服务器2:

vim /opt/zookeeper/docker-compose.yml

version: '3.7'
services:
zookeeper:
image: v-zookeeper
container_name: zookeeper
build:
context: .
dockerfile: Dockerfile
restart: always
privileged: true
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
- "18080:8080"
environment:
- JAVA_OPTS=-Xms256m -Xmx256m -Xmn100m
- ZOO_MY_ID=2
volumes:
- "/etc/zookeeper/zoo.cfg:/conf/zoo.cfg"
- "/var/lib/zookeeper/version-2:/data/version-2"
- "/var/log/zookeeper/version-2:/datalog/version-2"
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "100"

服务器3:

vim /opt/zookeeper/docker-compose.yml

version: '3.7'
services:
zookeeper:
image: v-zookeeper
container_name: zookeeper
build:
context: .
dockerfile: Dockerfile
restart: always
privileged: true
ports:
- "2181:2181"
- "2888:2888"
- "3888:3888"
- "18080:8080"
environment:
- JAVA_OPTS=-Xms256m -Xmx256m -Xmn100m
- ZOO_MY_ID=3
volumes:
- "/etc/zookeeper/zoo.cfg:/conf/zoo.cfg"
- "/var/lib/zookeeper/version-2:/data/version-2"
- "/var/log/zookeeper/version-2:/datalog/version-2"
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "100"

需要配置quorumListenOnAllIPs=true,用以监听所有网卡,这个和云服务器的一些虚拟技术有关。

启动

cd /opt/zookeeper
docker-compose build
docker-compose up -d --force-recreate

查看日志

docker logs --tail="500" zookeeper

备份配置文件

docker cp zookeeper:/conf/zoo.cfg /opt/zookeeper/conf/zoo_bak.cfg

docker cp zookeeper1:/conf/ /opt/zookeeper/zookeeper1_conf_bak/

进入容器

docker exec -it zookeeper /bin/bash

检查容器状态

docker exec -it zookeeper1 /bin/bash ./bin/zkServer.sh status

zookeeper安装运行(docker)的更多相关文章

  1. Docker——MacOS上安装运行docker

    近几年来,Docker越来越流行,使用场景也越来越广泛.为了能尽快跟上时代步伐.学习并应用到实际工作中,我也开始了Docker之旅. Docker版本 Docker共有两种版本: 社区版(Commun ...

  2. TICK/TIGK运维栈安装运行 docker【中】

    InfluxDB docker search influxdb docker pull influxdb docker run -d -p 8086:8086 -v /var/lib/influxdb ...

  3. elastic stack安装运行(docker)

    https://www.docker.elastic.co 注:目前阿里云为7.4 elasticsearch 参考https://www.elastic.co/guide/en/elasticsea ...

  4. Centos7基于容器安装运行Docker私有仓库及添加认证

    一.前言 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理 ...

  5. kafka安装运行(docker)

    zookeeper参照https://www.cnblogs.com/wintersoft/p/11128484.html mkdir /opt/kafka -pvim /opt/kafka/Dock ...

  6. skywalking安装运行(docker)

    https://github.com/apache/skywalking-docker/tree/master/6/6.5 https://hub.docker.com/r/apache/skywal ...

  7. 物联网架构成长之路(27)-Docker练习之Zookeeper安装

    0. 前言 准备了解一下消息队列MQ,对比了一些开源的中间件,最后选择Kafka作为以后用到的消息队列,消息队列的应用场景及Kafka与其他消息队列的优缺点这里就不细说了,具体的可以参考其他博客说明. ...

  8. ZooKeeper安装与运行

    ZooKeeper安装与运行 首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录.“bin目录”中存放有运行脚本:“conf目 ...

  9. Linux通过docker安装运行酷Q--用QQ骰子君进行跑团

    Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...

随机推荐

  1. Linux内核学习散知识整理

    1.container_of(ptr, type, member) 使用方法:根据指向结构体type的成员member的指针ptr,获取指向改结构体的指针 /** * container_of - c ...

  2. 【书评:Oracle查询优化改写】第三章

    [书评:Oracle查询优化改写]第三章 BLOG文档结构图       导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 隐含参数 ...

  3. Python爬虫系列:四、Cookie的使用

    Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么 ...

  4. K8S 部署 ingress-nginx 配置 https

    生成证书 mkdir cert && cd cert # 生成私钥 tls.key, 密钥位数是 2048 openssl genrsa -out tls.key 2048 # 使用 ...

  5. pandas之数据处理

    首先,数据加载 pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,期中read_csv和read_table这两个使用最多. 1.删除重复元素 使用duplicated()函数 ...

  6. VMware15.5版本通过挂载系统光盘搭建yum仓库

    VMware15.5版本通过挂载系统光盘搭建yum仓库一.1.打开CentOS 7虚拟机. 2.登录虚拟机,选择未列出  用户名:root 密码:输入自己设置的密码 点击登录. 3.右键单击打开终端. ...

  7. django考点答案

    1 列举Http请求中常见的请求方式 2 谈谈你对HTTP协议的认识.1.1 长连接3 简述MVC模式和MVT模式4 简述Django请求生命周期5 简述什么是FBV和CBV6 谈一谈你对ORM的理解 ...

  8. jQ native 构造函数

  9. 002-官网安装openstack之-安装基础服务

    安装openstack基础服务 1.控制节点安装时间同步服务(chrony) (1)时间同步大体来说有两种方式: 一种是自己搭建时间同步服务器,各个需要同步时间的节点,与其同步时间 另一种则是使用nt ...

  10. cifar-10数据集的可视化

    import numpy as np from PIL import Image import pickle import os CHANNEL = 3 WIDTH = 32 HEIGHT = 32 ...