zookeeper安装运行(docker)
拉取镜像
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的值
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)的更多相关文章
- Docker——MacOS上安装运行docker
近几年来,Docker越来越流行,使用场景也越来越广泛.为了能尽快跟上时代步伐.学习并应用到实际工作中,我也开始了Docker之旅. Docker版本 Docker共有两种版本: 社区版(Commun ...
- TICK/TIGK运维栈安装运行 docker【中】
InfluxDB docker search influxdb docker pull influxdb docker run -d -p 8086:8086 -v /var/lib/influxdb ...
- elastic stack安装运行(docker)
https://www.docker.elastic.co 注:目前阿里云为7.4 elasticsearch 参考https://www.elastic.co/guide/en/elasticsea ...
- Centos7基于容器安装运行Docker私有仓库及添加认证
一.前言 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有的镜像仓库用于管理 ...
- kafka安装运行(docker)
zookeeper参照https://www.cnblogs.com/wintersoft/p/11128484.html mkdir /opt/kafka -pvim /opt/kafka/Dock ...
- skywalking安装运行(docker)
https://github.com/apache/skywalking-docker/tree/master/6/6.5 https://hub.docker.com/r/apache/skywal ...
- 物联网架构成长之路(27)-Docker练习之Zookeeper安装
0. 前言 准备了解一下消息队列MQ,对比了一些开源的中间件,最后选择Kafka作为以后用到的消息队列,消息队列的应用场景及Kafka与其他消息队列的优缺点这里就不细说了,具体的可以参考其他博客说明. ...
- ZooKeeper安装与运行
ZooKeeper安装与运行 首先从官网下载ZooKeeper压缩包,然后解压下载得到的ZooKeeper压缩包,发现有“bin,conf,lib”等目录.“bin目录”中存放有运行脚本:“conf目 ...
- Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...
随机推荐
- 英语foteball足球foteball单词
现代足球起源地是在英格兰.传说在11世纪,英格兰与丹麦之间有过一场战争,战争结束后,英格兰人在清理战争废墟时发现一个丹麦入侵者的头骨,出于愤恨,他们便用脚去踢这个头骨,一群小孩见了便也来踢,不过他们发 ...
- 【Python】eval 函数
eval() 函数十分强大 -- 将字符串 当成 有效的表达式 来求值,并返回计算结果 # 基本的熟悉计算 print(eval("1 + 1")) # 字符串重复 print(e ...
- H3C 802.11网络的基本元素
- Python的logging模块详解
Python的logging模块详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志级别 日志级别指的是产生的日志的事件的严重程度. 设置一个级别后,严重程度 ...
- 你真的理解CountDownLatch与CyclicBarrier使用场景吗?
原文:https://blog.csdn.net/zzg1229059735/article/details/61191679 相信每个想深入了解多线程开发的Java开发者都会遇到CountDownL ...
- Rendering in UE4
Intro Thinking performance. Identify the target framerate, aim your approach on hitting that target ...
- CentOS7.5下搭建的SVN实现删除权限控制和必须进行注释的提示操作
需求:上传到SVN服务器的项目文件如果被普通用户误删了,虽然能恢复,但是如果删除的文件比较多,注释的内容简单,恢复的时候需要一个个的保存到本地,然后再上传到服务器上,会很麻烦,可能还会出现提交代码版本 ...
- Linux——自定义服务命令
前言 这个写部署禅道的时候包含了这个内容,但是今天弄的时候突然忘记了,所以还是重新写下. 步骤 有的同学可能会不知道一些系统自带的目录是什么意思,所以我这里就拆分下,不直接创建 进入到系统服务目录 c ...
- List.Sort
static void Main(string[] args) { List<double> valuesList = new List<double>(); valuesLi ...
- makefile的三个变量
“$@”代表目标文件. “$^”代表所有的依赖文件. “$<”代表第一个依赖文件. main:main.o mytool1.o mytool2.o gcc -o $@ $^ .c.o: gcc ...