dockerhub:registry.hub.docker.com/_/zookeeper
环境:centos7 docker vbox虚拟机
docker-compose搭建
下载docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose.yml
随便新建一个文件夹在里面写docker-compose.yml文件
cd /dzz
mkdir dcset
cd dcset
vim docker-compose.yml
docker-compose.yml
version: "3.1"
services:
zoo1:
image: zookeeper:3.8 #镜像名称
restart: always #docker重启容器一起启动
hostname: zoo1 #主机名
container_name: zoo1 #容器自定义名称
privileged: true #root权限
ports: #端口映射
- 2181:2181
volumes: #挂载容器卷,自动创建
- /dzz/zoo1/data:/data
- /dzz/zoo1/datalog:/datalog
environment:
ZOO_MY_ID: 1 #节点ID
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
TZ: Asia/Shanghai #时区
networks: #网络
- zoomy
zoo2:
image: zookeeper:3.8
restart: always
hostname: zoo2
container_name: zoo2 #容器自定义名称
privileged: true
ports: #端口映射
- 2182:2181
volumes: #挂载容器卷
- /dzz/zoo2/data:/data
- /dzz/zoo2/datalog:/datalog
environment:
ZOO_MY_ID: 2 #节点ID
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
TZ: Asia/Shanghai #时区
networks:
- zoomy
zoo3:
image: zookeeper:3.8
restart: always
hostname: zoo3
container_name: zoo3 #容器自定义名称
privileged: true
ports: #端口映射
- 2183:2181
volumes: #挂载容器卷
- /dzz/zoo3/data:/data
- /dzz/zoo3/datalog:/datalog
environment:
ZOO_MY_ID: 3 #节点ID
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
TZ: Asia/Shanghai #时区
networks:
- zoomy
networks:
zoomy:
保存退出
compose常用命令
docker-compose -h 查看帮助
docker-compose up 启动所有docker-compose服务
docker-compose up -d 启动所有docker-compose服务并后台运行
docker-compose down 停止并删除容器,网络,镜像
docker-compose exec yum 服务ID bash 进入容器内部
docker-compose ps 查看编排过的运行的所有容器
docker-compose top 展示编排过的容器进程
docker-compose logs yum 服务ID 查看容器输出日志
docker-compose config 检查配置
docker-compose config -q 检查配置有问题才输出
docker-compose restart 重启服务
docker-compose start 启动服务
docker-compose stop 停止服务
当前docker-compose.yml目录下执行命令,启动所有docker-compose服务并后台运行
docker-compose up -d
验证
分别进入zk的三个容器中,查看状态
docker exec -it zoo1 bash
zkServer.sh status
#剩下两个照做
总共可以看到两个follower一个leader
一主二从
选一个在容器内进入zk
zkCli.sh
创建节点
create /test
查看节点
ls /
可以在打开其他容器验证是否存在,若存在验证完毕。
docker搭建
下载zk
docker pull zookeeper
新建网络
创建网络名为zoomy
docker network create zoomy
查看网络
docker network ls
创建zk容器
zoo1
$ docker run -d \
--restart=always \
--privileged=true \
--network zoomy \
--name=zoo1 \
-v /dzz/zoo1/data:/data \
-v /dzz/zoo1/datalog:/datalog \
-e ZOO_MY_ID=1 \
-p 2181:2181 \
-e ZOO_SERVERS="server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888" \
zookeeper
zoo2
$ docker run -d \
--restart=always \
--privileged=true \
--network zoomy \
--name=zoo2 \
-v /dzz/zoo2/data:/data \
-v /dzz/zoo2/datalog:/datalog \
-e ZOO_MY_ID=2 \
-p 2182:2181 \
-e ZOO_SERVERS="server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888" \
zookeeper
zoo3
$ docker run -d \
--restart=always \
--privileged=true \
--network zoomy \
--name=zoo3 \
-v /dzz/zoo3/data:/data \
-v /dzz/zoo3/datalog:/datalog \
-e ZOO_MY_ID=3 \
-p 2183:2181 \
-e ZOO_SERVERS="server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888" \
zookeeper
完毕!