配置Zookeeper安装目录
-
在宿主机配置zookeeper安装目录:/docker/develop/zookeeper
并且在文件夹创建 data 和logs 目录:
mkdir -p /docker/develop/zookeeper/data
mkdir -p /docker/develop/zookeeper/logs -
授权文件目录:chmod -R 777 /docker/develop/zookeeper/
安装和部署Zookeeper
-
拉取zookeeper镜像:docker pull zookeeper
-
安装一个临时的Zookeeper服务
zookeeperTemp
docker run -d -p 2181:2181 --restart always --name=zookeeperTemp --privileged=true zookeeper:3.4.9(3.5以上的版本可能有启动问题)
-
进入zookeeperTemp容器中看一下
docker exec -it 容器id(通过docker ps查到) /bin/bash\
-
去到根目录
/
,发现根目录中有一个conf
目录,进入后发现里面有我们需要的zoo.cfg
文件 -
用
exec
命令退出zookeeperTemp
容器 -
这时候敲一个命令
docker cp zookeeperTemp容器的id/conf /docker/develop/zookeeper/
将容器中有
zoo.cfg
文件的conf直接拷贝到容器外我们一开始建立的zookeeper目录下,此时/docker/develop/zookeeper/
目录中应该有三个目录:conf
,data
和logs
-
这个时候正式地建立我们的zookeeper容器,命名为
zookeeper01
,别忘了先停掉zookeeperTemp
然后删掉zookeeperTemp
这个容器docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --restart always --name=zookeeper01 --privileged=true \ -v /docker/develop/zookeeper/conf:/conf \ -v /docker/develop/zookeeper/data:/data \ -v /docker/develop/zookeeper/logs:/datalog \ -e "TZ=Asia/Shanghai" \ -e "JAVA_OPTS=-server -Xms512m -Xmx512m -Xmn256m -Duser.home=/opt -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:+AlwaysPreTouch -XX:-UseBiasedLocking" \ zookeeper:3.4.9
三个
-v
是将我们容器外部的zookeeper
下的三个目录挂载到新建的容器zookeeper01
的对应目录上。这样我们就可以在外部修改容器内部的文件了。
启动服务端
-
进入zookeeper01
docker exec -it 容器id /bin/bash
-
启动server
bin/zkServer.sh start
启动客户端
bin/zkCli.sh
关闭客户端
quit
关闭服务端
bin/zkServer.sh stop