1. 获取ZooKeeper的Docker镜像

首先获取官网的docker镜像

docker pull zookeeper

2. 启动zookeeper容器

启动命令:

docker run --name myzookeeper -d zookeeper:latest

将在后台启动一个zookeeper容器,名称为myzookeeper,默认导出 2181 端口。可通过命令docker ps确认。

也可通过命令

docker logs -f myzookeeper

查看容器运行状态(Ctrl+C退出)。

ZK命令行客户端连接ZK

刚才我们启动的那个zookeeper容器没有通过-p命令来绑定宿主机的端口, 因此我们不能在宿主机直接访问。但我们可以使用Docker的link机制来对这个zookeeper容器进行访问。执行如下命令:

docker run -ti --rm --link myzookeeper:zookeeper zookeeper zkCli.sh -server zookeeper

link命令的含义是:新启动一个zookeeper镜像, 并运行这个镜像内的 zkCli.sh 命令, 命令参数是 “-server zookeeper”,同时将我们先前启动的名为myzookeeper 的容器连接(link) 到我们新建的这个容器上, 并将其命名为zookeeper。

进入到新容器的bash下,就可以操作zookeeper的服务了。

进入正在运行的zookeeper容器

使用命令

docker exec -ti myzookeeper /bin/bash

可以进入正在运行着的zookeeper容器中:

bash-4.3# ls
CHANGES.txt               conf                      recipes
LICENSE.txt               contrib                   src
NOTICE.txt                dist-maven                zookeeper-3.4.9.jar
README.txt                docs                      zookeeper-3.4.9.jar.asc
README_packaging.txt      ivy.xml                   zookeeper-3.4.9.jar.md5
bin                       ivysettings.xml           zookeeper-3.4.9.jar.sha1
build.xml                 lib