一、zookeeper集群

docker-compose文件:

    version: '3.1'
services:
zoo1:
image: zookeeper
hostname: zoo1
container_name: zoo1
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper
restart: always
hostname: zoo2
container_name: zoo2
ports:
- 2182:2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper
restart: always
hostname: zoo3
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=0.0.0.0:2888:3888
  • 在这里ZOO_MY_ID必须唯一
  • ZOO_SERVERS用来配置服务的broker

二、redis cluster

1、创建redis文件夹

在对应的文件夹下分别创建7001-7006的文件夹与docker-compose.yml,这里名字文件夹代表当前redis节点的端口号,如图所示:

2、创建redis.conf文件

具体redis-cluster示例大家可以参考官网,那么分别配置redis.conf文件

    port 7001
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

port与文件夹名对应

3、docker-compose.yml文件


version: '3.1'
services:
redis-node1:
image: redis
hostname: redis-node1
network_mode: host
container_name: redis-node1
entrypoint: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7001:7001
env_file:
- .env
volumes:
- "${PROJECT_HOME}/7001/redis.conf:/usr/local/etc/redis/redis.conf"
redis-node2:
image: redis
hostname: redis-node2
network_mode: host
container_name: redis-node2
entrypoint: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7002:7002
env_file:
- .env
volumes:
- "${PROJECT_HOME}/7002/redis.conf:/usr/local/etc/redis/redis.conf"
redis-node3:
image: redis
hostname: redis-node3
network_mode: host
container_name: redis-node3
entrypoint: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7003:7003
env_file:
- .env
volumes:
- "${PROJECT_HOME}/7003/redis.conf:/usr/local/etc/redis/redis.conf"
redis-node4:
image: redis
hostname: redis-node4
network_mode: host
container_name: redis-node4
entrypoint: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7004:7004
env_file:
- .env
volumes:
- "${PROJECT_HOME}/7004/redis.conf:/usr/local/etc/redis/redis.conf"
redis-node5:
image: redis
hostname: redis-node5
network_mode: host
container_name: redis-node5
entrypoint: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7005:7005
env_file:
- .env
volumes:
- "${PROJECT_HOME}/7005/redis.conf:/usr/local/etc/redis/redis.conf"
redis-node6:
image: redis
hostname: redis-node6
network_mode: host
container_name: redis-node6
entrypoint: redis-server /usr/local/etc/redis/redis.conf
ports:
- 7006:7006
env_file:
- .env
volumes:
- "${PROJECT_HOME}/7006/redis.conf:/usr/local/etc/redis/redis.conf"

这里注意以下几点:

  1. network_mode设置为host,否则在创建集群时,会一直等待而不会创建成功
  2. volumes挂载点必须覆盖容器内部配置,大家也可以考虑挂载redis持久化的数据文件夹

配置好后分别运行:

    $ docker-compose create
$ docker-compose start

4、启动集群

在这里部署在阿里云服务器上

运行命令如下:


$ docker run -it inem0o/redis-trib create --replicas 1 公网IP:7001 公网IP:7002 公网IP:7003 公网IP:7004 公网IP:7005 公网IP:7006

运行后如图所示:



即可说明成功,然后你就访问主节点试试数据是否同步吧!

使用docker-compose快速构建集群示例(一)的更多相关文章

  1. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  2. [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境

    快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...

  3. Docker 0x13: Docker 构建集群/服务/Compose/分布式服务栈

    目录 Docker 构建集群/服务/Compose/分布式服务栈 集群 初始化集群服务 安装docker-machine 管理节点和工作节点 docker集群构建完成 集群中部署应用 集群服务访问特性 ...

  4. 利用Docker Compose快速搭建本地测试环境

    前言 Compose是一个定义和运行多个Docker应用的工具,用一个YAML(dockder-compose.yml)文件就能配置我们的应用.然后用一个简单命令就能启动所有的服务.Compose编排 ...

  5. Docker 部署 RocketMQ Dledger 集群模式( 版本v4.7.0)

    文章转载自:http://www.mydlq.club/article/97/ 系统环境: 系统版本:CentOS 7.8 RocketMQ 版本:4.7.0 Docker 版本:19.03.13 一 ...

  6. Docker 搭建 Redis Cluster 集群环境

    使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...

  7. 轻松搭建docker应用的mesos集群

    7条命令在docker中部署Mesos集群 所有使用的Docker容器构建文件是有也.您可以在本地构建每个容器或只使用位于Docker Hub预构建的容器.下面的命令会自动下载所需的预建的容器为您服务 ...

  8. 【ELK】【docker】6.Elasticsearch 集群启动多节点 + 解决ES节点集群状态为yellow

    本章其实是ELK第二章的插入章节. 本章ES集群的多节点是docker启动在同一个虚拟机上 ====================================================== ...

  9. 使用docker搭建hadoop分布式集群

    使用docker搭建部署hadoop分布式集群 在网上找了非常长时间都没有找到使用docker搭建hadoop分布式集群的文档,没办法,仅仅能自己写一个了. 一:环境准备: 1:首先要有一个Cento ...

随机推荐

  1. 图片识别文字, OCR

    文章引用自: https://www.cnblogs.com/stone_w/archive/2011/10/08/2202397.html 方式一.Asprise-OCR的使用. Asprise-O ...

  2. java项目中VO和DTO以及Entity,各自是在什么情况下应用

    1.entity里的每一个字段,与数据库相对应, 2.dto里的每一个字段,是和你前台页面相对应, 3.VO,这是用来转换从entity到dto,或者从dto到entity的中间的东西.   举个例子 ...

  3. iOS高德地图SDK定位和搜索附近信息的具体使用

    1.显示地图.定位.显示当前位置. 导入你需要的功能的头文件,申明全局变量,代理方法等等.   初始化地图,在控制器即将显示额时候打开定位和跟踪用户,这里对参数不懂的话康忙进去都有注释.   对了.i ...

  4. redis CentOS6.5安装及集群部署

    .下载redis source包 链接:https://pan.baidu.com/s/122ZCjNvjl9Jx6M2YsLrncw 密码:92ze 2.解压 tar -xzf redis-3.2. ...

  5. 提交操作自动遮蔽实现之ajax

    有时候,我们期望一些提交操作自动增加遮蔽效果,提交成功时自动去除遮蔽. 方案: 1. 提交前增加遮蔽逻辑,成功后增加去除遮蔽逻辑,但是不够智能 2.通过ajax拦截,实现自动添加\去除遮蔽效果 aja ...

  6. Maven学习 二 Maven环境搭建

    第一步:下载Maven并解压 注意选择镜像地址,选择国内的会快点 解压目录 Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf: ...

  7. xbee/xbeeRPOS1、xbee/xbeePROS2C802.15.4/Digimesh功能方法

    Digi XBee 802.15.4的第一个版本也称为S1,是基于Freescale的无线收发器片子设计的.最新的802.15.4模块(内部称号S1B)采用和Digi ZigBee模块相同SOC芯片设 ...

  8. poj3304(是否存在一条直线与所有给出线段相交

    题意:给出n条线段,问你是否存在一条直线让他与所有线段相交. 思路:枚举两条直线的起点和终点做一条直线,看他是否与所有线段相交. #include<cstdio> #include< ...

  9. tensorflow学习之(一)预测一条直线y = 0.1x + 0.3

    #预测一条y = 0.1x + 0.3的直线 import tensorflow as tf import numpy as np #科学计算模块 ''' tf.random_normal([784, ...

  10. 2019.02.11 bzoj4818: [Sdoi2017]序列计数(矩阵快速幂优化dp)

    传送门 题意简述:问有多少长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的和是p的倍数,且其中至少有一个数是质数,答案对201704082017040820170408取模(n≤1e9, ...