Docker zookeeper安装部署

一 下载zookeeper包

http://apache.osuosl.org/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

二 制作zookeeper的Docker image

1 采用ubuntu16.04基础image,并对此image安装jdk1.8

2 把zookeeper-3.4.9.tar.gz加压后通过文件挂载的方式传入基础image中,配置$ZOOKEEPER_HOME,但把$ZOOKEEPER_HOME/zookeeper-3.4.9/conf,接着commit image,命名为zookeeper:1.0

3 基于zookeeper:1.0制作正规的zookeeper image zookeeper:2.0

Dockerfile:

FROM zookeeper:1.0

MAINTAINER dean

ENV JAVA_HOME /usr/local/java/

ENV ZOOKEEPER_HOME /opt/tools/zookeeper/zookeeper-3.4.9

ENV JRE_HOME $JAVA_HOME/jre

ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib

ENV PATH $PATH:$JAVA_HOME/bin

 4 启动docker集群

docker run -d -i -t -p 2181:2181 -p 2887:2887 -p 3887:3887 -v /usr/local/zookeeper/zookeeperServer1:/opt/tools/zookeeper/zookeeper-3.4.9/conf   -v /usr/local/zookeeper/zookeeperServer1/data:/usr/local/zookeeperLog  zookeeper:2.0  /bin/bash

docker run -d -i -t -p 2182:2182 -p 2888:2888 -p 3888:3888 -v /usr/local/zookeeper/zookeeperServer2:/opt/tools/zookeeper/zookeeper-3.4.9/conf   -v /usr/local/zookeeper/zookeeperServer2/data:/usr/local/zookeeperLog/  zookeeper:2.0  /bin/bash

docker run -d -i -t -p 2183:2183 -p 2889:2889 -p 3889:3889 -v /usr/local/zookeeper/zookeeperServer3:/opt/tools/zookeeper/zookeeper-3.4.9/conf   -v /usr/local/zookeeper/zookeeperServer3/data:/usr/local/zookeeperLog  zookeeper:2.0  /bin/bash

值得注意的是zookeeper的配置文件

server1

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeperLog/
dataLogDir=/usr/local/zookeeperLog/
# the port at which the clients will connect
clientPort=2181

server.1=0.0.0.0:2887:3887
server.2=10.108.68.140:2888:3888
server.3=10.108.68.140:2889:3889

server2

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeperLog/
dataLogDir=/usr/local/zookeeperLog/
# the port at which the clients will connect
clientPort=2182

server.1=10.108.68.140:2887:3887
server.2=0.0.0.0:2888:3888
server.3=10.108.68.140:2889:3889

server3

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeperLog/
dataLogDir=/usr/local/zookeeperLog/
# the port at which the clients will connect
clientPort=2183

server.1=10.108.68.140:2887:3887
server.2=10.108.68.140:2888:3888
server.3=0.0.0.0:2889:3889

最后通过zkCli.sh -server 10.108.68.140:2181检查一下集群的运行情况



 

猜你喜欢

转载自phipray.iteye.com/blog/2328697