docker-compose配置zookeeper分佈式集群

docker-compose配置zookeeper分佈式集群

$ 前言

  • 記錄一次,在docker swarm 下利用docker-compose創建的3個節點的zookeer分佈式集群.

首先創建一個Docker網卡

<code>#創建swarm網絡
docker network create -d overlay service_ov_net --attachable --subnet 172.169.0.0/16 --gateway
/<code>

zookeeper配置 zk.yml 配置說明

  • x-logging 配置docker容器的日誌文件大小最大256m 最多3個
  • networks 指定網絡為我們上面創建的網絡
  • volumes 不需要刻意創建,docker默認會在/var/lib/docker/volume/ 進行創建
  • ZOO_MY_ID: 配置各個節點的ID
  • ZOO_SERVERS: server.1 配置各個節點的連接地址
  • ZOO_AUTOPURGE_PURGEINTERVAL: 配置1個小時清理一下zk日誌
  • ZOO_AUTOPURGE_SNAPRETAINCOUNT: 配置最多保留3個zk日誌

zk.yml 源配置

<code>version: '3.4'

x-logging:
&default-logging
options:
max-size: '256m'
max-file: '3'
driver: json-file


networks:
ov_net:
external:
name: service_ov_net

volumes:
zk-1-data:
zk-2-data:
zk-3-data:
zk-1-datalog:
zk-2-datalog:
zk-3-datalog:

services:
zk-1:
image: zookeeper:3.4.14
logging: *default-logging
restart: always
hostname: zk-1
ports:
- "2181:2181"
volumes:
- zk-1-data:/data
- zk-1-datalog:/datalog
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zk-2:2888:3888 server.3=zk-3:2888:3888
ZOO_AUTOPURGE_PURGEINTERVAL: 1
ZOO_AUTOPURGE_SNAPRETAINCOUNT: 3
networks:
ov_net:
ipv4_address: 172.169.11.101
zk-2:
image: zookeeper:3.4.14
logging: *default-logging
restart: always
hostname: zk-2
volumes:
- zk-2-data:/data
- zk-2-datalog:/datalog
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zk-1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zk-3:2888:3888
ZOO_AUTOPURGE_PURGEINTERVAL: 1
ZOO_AUTOPURGE_SNAPRETAINCOUNT: 3
networks:
ov_net:
ipv4_address: 172.169.11.102
zk-3:

image: zookeeper:3.4.14
logging: *default-logging
restart: always
hostname: zk-3
volumes:
- zk-3-data:/data
- zk-3-datalog:/datalog
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zk-1:2888:3888 server.2=zk-2:2888:3888 server.3=0.0.0.0:2888:3888
ZOO_AUTOPURGE_PURGEINTERVAL: 1
ZOO_AUTOPURGE_SNAPRETAINCOUNT: 3
networks:
ov_net:
ipv4_address: 172.169.11.103
/<code>

$ 附帶上自己docker環境下常用到的命令

<code>####docker啟動單個容器
docker start 容器名
####docker停止單個容器
docker stop 容器名
####停止刪除所有容器
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) -f
####刪除所有鏡像
docker image rm $(docker images -q) -f
####刪除無用的卷
docker volume prune
####查看docker日誌文件大小
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
####查找大文件
find / -type f -size +100M
####docker-compose方式創建啟動容器
docker-compose -f zk.yml up -d
####docker-compose方式停止銷燬容器
docker-compose -f zk.yml down/<code>


分享到:


相關文章: