Docker与ZooKeeper
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