前言
这里到Zookeeper了
常规梳理
关于镜像
这里选择zookeeper:3.5.7
关于环境变量
暂无。
这是经验所得,更详细的说明可去dockerhub搜相关镜像了解。
关于挂载目录及文件
- /data:zookeeper持久化目录
- /datalog:zookeeper日志目录
- /conf/zoo.cfg:zookeeper配置文件
关于服务端口
- 2181
为了更方便查看zookeeper的运行情况,这里顺道安装了可视化服务zkui。
定义文件样例
version: '2'
services:
zookeeper:
image: "zookeeper:3.5.7"
restart: always
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "./data:/data"
- "./datalog:/datalog"
- "./conf/zoo.cfg:/conf/zoo.cfg"
ports:
- "2181:2181"
zkui:
environment:
ZK_SERVER: "zookeeper:2181" # zkui需要访问zookeeper,这里对应的是services.zookeeper的那个key+port
image: "registry.cn-hangzhou.aliyuncs.com/wkaca7114/zkui:latest"
restart: always
ports:
- "9090:9090"
depends_on:
- zookeeper
links:
- zookeeper
- services:服务定义,每个key对应一个服务
- environment:环境变量定义
- image:镜像
- restart:重启策略
- no,默认策略,在容器退出时不重启容器
- on-failure,在容器非正常退出时(退出状态非0),才会重启容器
- on-failure:3,在容器非正常退出时重启容器,最多重启3次
- always,在容器退出时总是重启容器
- unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
- volumes:挂载目录及文件,左边为宿主,右边为容器
- ports:端口映射,左边宿主,右边容器
- depends_on:依赖关系,先启动zookeeper,再到自身
- links:容器可连接到同配置文件下的services.zookeeper
开始安装
初始化目录
mkdir -p /docker-workspace/zookeeper/data
mkdir -p /docker-workspace/zookeeper/datalog
mkdir -p /docker-workspace/zookeeper/conf
添加配置文件
cat <<EOF > /docker-workspace/zookeeper/conf/zoo.cfg
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=localhost:2888:3888;2181
4lw.commands.whitelist=*
EOF
添加定义文件
cat <<EOF > /docker-workspace/zookeeper/docker-compose.yml
version: '2'
services:
zookeeper:
image: "zookeeper:3.5.7"
restart: always
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/docker-workspace/zookeeper/data:/data"
- "/docker-workspace/zookeeper/datalog:/datalog"
- "/docker-workspace/zookeeper/conf/zoo.cfg:/conf/zoo.cfg"
ports:
- "2181:2181"
zkui:
environment:
ZK_SERVER: "zookeeper:2181"
image: "registry.cn-hangzhou.aliyuncs.com/wkaca7114/zkui:latest"
restart: always
ports:
- "9090:9090"
depends_on:
- zookeeper
links:
- zookeeper
EOF
运行实例
-
后台运行实例
docker-compose -f /docker-workspace/zookeeper/docker-compose.yml up -d
下面命令可暂时跳过,直接跳到连接验证
-
停止运行中的实例
docker-compose -f /docker-workspace/zookeeper/docker-compose.yml stop
-
开启运行中的实例
docker-compose -f /docker-workspace/zookeeper/docker-compose.yml start
-
重启运行中的实例
docker-compose -f /docker-workspace/zookeeper/docker-compose.yml restart
-
移出实例
docker-compose -f /docker-workspace/zookeeper/docker-compose.yml down
-
非后台运行实例
docker-compose -f /docker-workspace/zookeeper/docker-compose.yml up
最常用的是
docker-compose -f docker-compose.yml up -d
与docker-compose -f docker-compose.yml down
-
其他命令查看
docker-compose -h
连接验证
浏览器访问:
默认密码:
admin/manager
appconfig/appconfig
Zookeeper常规维护
传统的安装在宿主机上的Zookeeper,可直接登录主机维护。而使用docker后,会略微有些区别,会多加一步,进入容器。
如果仅启动了一个zookeeper实例,则可以使用如下命令进入容器。
docker exec -it $(docker ps -a | grep zookeeper | awk '{print $1}') bash
其实就是:
docker exec -it containerid bash
查看容器id命令
docker ps -a