今天搭建了一个使用docker搭建ZK 集群
首先镜像下载
docker pull zookeeper
当出现如下结果时, 表示镜像已经下载完成了:
>>> docker pull zookeeper Using default tag: latest latest: Pulling from library/zookeeper e110a4a17941: Pull complete a696cba1f6e8: Pull complete bc427bd93e95: Pull complete c72391ae24f6: Pull complete 40ab409b6b34: Pull complete d4bb8183b85d: Pull complete 0600755f1470: Pull complete Digest: sha256:12458234bb9f01336df718b7470cabaf5c357052cbcb91f8e80be07635994464 Status: Downloaded newer image for zookeeper:latest
启动一个ZK命令
docker run --name my_zookeeper -d zookeeper:latest
今天要讲的是集群的搭建使用的是docker-compose所以先创建一个 docker-compose.yaml配置如下
version: '2' services: zoo1: image: zookeeper restart: always container_name: zoo1 ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 zoo2: image: zookeeper restart: always container_name: zoo2 ports: - "2182:2181" environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888 zoo3: image: zookeeper restart: always container_name: zoo3 ports: - "2183:2181" environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
这个image 可以使用image ID代替 查询镜像ID 命令如下
docker images
这个配置文件会告诉 Docker 分别运行三个 zookeeper 镜像, 并分别将本地的 2181, 2182, 2183 端口绑定到对应的容器的2181端口上.
ZOO_MY_ID 和 ZOO_SERVERS 是搭建 ZK 集群需要设置的两个环境变量, 其中 ZOO_MY_ID 表示 ZK 服务的 id, 它是1-255 之间的整数, 必须在集群中唯一. ZOO_SERVERS 是ZK 集群的主机列表.
接着我们在 docker-compose.yml 当前目录下运行:
COMPOSE_PROJECT_NAME=zk_test docker-compose up -d
-d 是后台启动
使用docker ps 可以查看进程
使用以下命令进入容器
docker exec -it 容器id /bin/sh bin/zkServer.sh status #查看状态
这个是从节点
这个是主节点
传送门1:https://blog.csdn.net/wu1226419614/article/details/78075898
传送门2:https://www.jianshu.com/p/f9b257a3f948
来源:https://www.cnblogs.com/blackCatFish/p/12214981.html