美文网首页
2.Docker zookeeper

2.Docker zookeeper

作者: zouhao1985 | 来源:发表于2021-10-18 23:09 被阅读0次

一、下载镜像

docker镜像的下载不推荐不加标签或者使用latest标签,因为这两种情况都代表下载最新的标签,而最新的标签不是固定的,不利于排查问题的时候定位版本。

docker pull zookeeper:3.7.0

二、单机模式

2.1 单机启动

docker run -d -p 2181:2181 -e TZ="Asia/Shanghai" -v data-zookeeper:/data --name my-zookeeper --restart always zookeeper:3.7.0

-e TZ="Asia/Shanghai" # 指定上海时区
-d # 表示在一直在后台运行容器
-p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
--name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;前者是Docker Desktop创建的卷,后者是容器中的目录
--restart always #始终重新启动zookeeper
--rm 容器退出的时候,默认容器内部的文件系统仍然被保留;此参数对非后台运行的容器,当退出的时候自动清理用户的数据文件。这只是一个连接zookeeper的客户端,因此无需保留任何数据文件。这里如果只是测试,可以加上这个参数

2.2 连接测试

docker run -it --rm --name link-zookeeper --link my-zookeeper:zookeeper zookeeper:3.7.0 zkCli.sh -server zookeeper

-it 以可交互的终端模式运行
--rm 容器退出的时候,默认容器内部的文件系统仍然被保留;此参数对非后台运行的容器,当退出的时候自动清理用户的数据文件。这只是一个连接zookeeper的客户端,因此无需保留任何数据文件。
--link my-zookeeper:zookeeper 其中my-zookeeper是上例中启动的zookeeper的name,zookeeper是站在这个连接容器(link-zookeeper)的角度对上述启动的zookeeper容器的别名。进入这个连接容器,ping my-zookeeper和zookeeper都是指向同一个服务。
zkCli.sh -server zookeeper 这句话是在容器内部,使用zk客户端命令,连接zookeeper的服务,这里的zookeeper就是link中的第二个参数

2.3 zookeeper简单操作

create /zk "test" # 创建节点,并设置值
set /zk "test2" # 更新节点值
delete /zk #删除节点值
ls -R / #递归查询所有节点
ls /zk #查询某个节点
get /zk #查询某个节点值

2.4 进入zookeeper容器

docker exec -it my-zookeeper /bin/bash

进入容器命令,类似ssh连接到这个运行zookeeper的操作系统中。

2.4.1 扩展

实际生产环境,一般不使用root用户启动应用,而有时候需要临时解决一些问题,必须使用root用户进行容器中,这种情况下可以指定用户身份进入容器,如下:

docker exec -it -u root my-zookeeper /bin/bash

-u root 指定以root身份进入容器

相关文章

网友评论

      本文标题:2.Docker zookeeper

      本文链接:https://www.haomeiwen.com/subject/fgiwoltx.html