dockerhub 资料地址:https://hub.docker.com/_/zookeeper
官方地址:https://zookeeper.apache.org/doc/current/zookeeperStarted.html
1. 拉取镜像
docker pull zookeeper
2. 启动镜像(此镜像包括EXPOSE 2181 2888 3888 8080
(zookeeper客户端端口,跟随端口,选择端口,AdminServer端口),因此标准容器链接将使其自动可用于链接的容器。由于Zookeeper“快速失败”,最好始终重启它)
docker run --name some-zookeeper --restart always -d zookeeper
3. 从Zookeeper命令行客户端连接到Zookeeper
docker run -it --rm --link some-zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
3.1 查看根路径
ls /
3.2 查看zookeeper节点
ls /zookeeper
3.3 创建节点testnode,并关联字符串"zookeeper-test-node"
create /zookeeper/testnode "zookeeper-test-node"
3.4 查看节点数据
get /zookeeper/testnode
3.5 设置节点内容后再查看
set /zookeeper/testnode "zookeeper-node"
3.6 删除节点
delete /zookeeper/testnode
3.7 退出客户端
quit
4. 创建docker-compose.yml文件
touch /var/local/docker-compose.yml
5. 编写docker-compose.yml文件
vi /var/local/docker-compose.yml
添加如下内容
version: '3.1'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo3:
image: zookeeper
restart: always
hostname: zoo3
ports:
- 2183:2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
6. 运行Zookeeper( 3.5将以复制模式启动Zookeeper,注意:Zookeeper 3.4的ZOO_SERVERS
格式略有不同),并等待它完全初始化。端口2181-2183
将被暴露
docker-compose -f /var/local/docker-compose.yml up
或
docker stack deploy -c /var/local/docker-compose.yml zookeeper
7. 查看启动的容器
docker ps
8. 连接集群
nc -vz host-ip 2181
到此集群配置完成