Docker安装Zookeeper
1. 创建主机挂载配置文件
[root@wanfei ~]# mkdir -p ~/i/apps/zookeeper/{logs,data}
[root@wanfei ~]# cd ~/i/apps/zookeeper/
[root@wanfei zookeeper]# vi zoo.cfg
#复制
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data
dataLogDir=/logs
clientPort=2181
zoo.cfg: 配置文件,logs: 日志文件,data: 数据文件
2. 生成启动文件 start.sh
[root@wanfei zookeeper]# cat <<EOF > start.sh
#!/bin/bash
HOST_NAME=127.0.0.1
ZOOKEEPER_DIR=`pwd`
docker stop zookeeper
docker rm zookeeper
docker run -d \\
--hostname \${HOST_NAME} \\
--restart always \\
-p 2181:2181 \\
--name zookeeper \\
-v \${ZOOKEEPER_DIR}/zoo.cfg:/conf/zoo.cfg \\
-v \${ZOOKEEPER_DIR}/data:/data \\
-v \${ZOOKEEPER_DIR}/logs:/logs \\
zookeeper:latest
EOF
参数说明
--hostname \${HOST_NAME}
: 设置访问的域名地址,${HOST_NAME}
是上面定义的zookeeper.wanfei.xyz
这个地址--restart always
: 在docker
启动或者zookeeper
遇到错误时,自动重启容器-p 2181:2181
: 把容器内的2181
端口映射到宿主机2181
端口-v \${ZOOKEEPER_DIR}/zoo.cfg:/conf/zoo.cfg
:zookeeper配置文件,按这个配置运行-v \${ZOOKEEPER_DIR}/data:/data
:zookeeper数据文件,备份-v \${ZOOKEEPER_DIR}/logs:/logs
:zookeeper日志文件zookeeper:latest
:zookeeper镜像名,后面latest是最新的tag
3. 运行start.sh 启动zookeeper
[root@wanfei zookeeper]# sh start.sh
zookeeper
zookeeper
143459f938614d0e1286ee4bffb102bc1ee95966cb474fc99ddd4d1a096f3e55
4. 通过客户端连接已运行的zookeeper
[root@wanfei zookeeper]# docker run -it --rm --link zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
Connecting to zookeeper
...
[zk: zookeeper(CONNECTED) 7] create /wanfei 123
Created /wanfei
[zk: zookeeper(CONNECTED) 8] ls /
[zookeeper, wanfei]
[zk: zookeeper(CONNECTED) 9] get /wanfei
123
cZxid = 0x2
ctime = Tue Jan 01 17:04:40 GMT 2019
mZxid = 0x2
mtime = Tue Jan 01 17:04:40 GMT 2019
pZxid = 0x2
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
5. 通过idea连接zookeeper
安装zookeeper插件
创建node
设置值
查看设置成功
[zk: zookeeper(CONNECTED) 16] ls /
[333, zookeeper, wanfei]
[zk: zookeeper(CONNECTED) 17] get /333
222
cZxid = 0xc
ctime = Tue Jan 01 17:45:20 GMT 2019
mZxid = 0xd
mtime = Tue Jan 01 17:45:56 GMT 2019
pZxid = 0xc
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0