[docker] docker-compose安装zookeeper集群

前言

之前有介绍docker-compose的网络模块.


基础依赖

  • docker & docker-compose

基本思路

想法1

首先. 我们, 需要去docker的官网去查看是否有官方的镜像. 非常luck, 我们的zookeeper已经有官方的镜像可以进行使用.

在这里插入图片描述
在进行zookeeper镜像使用之前, 我们最好能够确认你需要的版本. 本文使用的是当前环境相较比较稳定的3.6.3. (注意mac好像最近为了适配M1芯片, 请选择相关适配的docker镜像.)

  • 提前下载docker镜像
    docker pull zookeeper:3.6.3

  • 提前创建docker网络
    docker-network create zk-net


单机 - (docker-compose.yml文件)

version: '2'

networks:
  zk-net:
    name: zk-net

services:
  zoo1:
    image: 'zookeeper:3.6.3'
    container_name: zoo1
    hostname: zoo1
    environment:
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2181:2181
      - 8081:8080

集群的配置文件和单机相似. 我们就先解析单机的配置文件.

networks
  • networks/zk-net/name: 此处主要是声明docker的相关网络. 便于下方进行使用.
services
  • services/environnet: 主要声明后方需要使用的某几个变量.
  • environment/ZOO_MY_ID: 通常构建集群时候的声明节点id.
  • environment/ ZOO_SERVERS: server.1: 声明配置文件的地址.
  • environment/networks: 当前节点使用的网络.
  • environment/ports: 当前节点相关的节点映射.

集群 - (docker-compose.yml文件)

version: '2'

networks:
  zk-net:
    name: zk-net

services:
  zoo1:
    image: 'zookeeper:3.6.3'
    container_name: zoo1
    hostname: zoo1
    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
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2181:2181
      - 8081:8080
  zoo2:
    image: 'zookeeper:3.6.3'
    container_name: zoo2
    hostname: zoo2
    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
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2182:2181
      - 8082:8080
  zoo3:
    image: 'zookeeper:3.6.3'
    container_name: zoo3
    hostname: zoo3
    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
      ALLOW_ANONYMOUS_LOGIN: "yes"
    networks:
      - zk-net
    ports:
      - 2183:2181
      - 8083:8080

其实相关的配置文件, Zookeeper的官网已经给出了一份解决方案. 其与上文的配置文件比较相似.
在这里插入图片描述


相关实践操作

  • 启动 docker-compose start
  • 使用zk-Cli.sh链接相关zookeeper集群.

Reference

[1]. docker compose搭建zookeeper集群
[2]. https://hub.docker.com/_/zookeeper
[3]. 使用 Docker 一步搞定 ZooKeeper 集群的搭建

猜你喜欢

转载自blog.csdn.net/u010416101/article/details/122803105