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配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...
随机推荐
- 3.用Python画五角星
import turtleimport timeimport os #def draw_square(org_x, org_y, x, y): turtle.setpos(org_x, org_y) ...
- Flink入门 - CoGroup和Join
/* *CoGroup */ final StreamExecutionEnvironment streamExecutionEnvironment = StreamExecutionEnvironm ...
- 归并排序python实现源码
将开发过程经常用到的一些代码片段收藏起来,下面的资料是关于归并排序python实现的代码,应该能对码农们有一些用. def mergesort(arr): if len(arr) == 1: retu ...
- UBOOT2016.05 看门狗
硬件平台 AM335X UBOOT 2016.05 在UBOOT中关看门狗,需要修改屏蔽这两处代码 init_sequence_r->board_init->hw_watchdog_in ...
- H3C 802.11b/g工作频段划分图
- Codeforces G. Ant colony
题目描述: F. Ant colonytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputo ...
- uiautomator2+python自动化测试1-环境准备
前言 uiautomator是Google提供的用来做安卓自动化测试的一个Java库.功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点 ...
- Mybatis容易遇到的问题
1.MyBatis中#和$的区别? 1.使用#的原理是?占位符,而$的原理为直接字符串拼接方式 2.$方式一般使用在写数据库中的固定字段时候才会使用例如表名或者列名(select * from use ...
- 初学Django基础02 ORM操作
django的ORM操作 之前我们知道了models.py这个文件,这个文件是用来读取数据结构的文件,每次操作数据时都走这个模块 常用字段 AutoField int自增列,必须填入参数 primar ...
- python_常用断言assert
python自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 常用 这里介绍几个常用断言的使用方法 ...