一、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. FortiGate安全策略说明

    1.安全策略原理 1)为了对数据流进行统一控制,方便用户配置和管理,FGT设备引入了安全策略的概念.通过配置安全策略,防火墙能够对经过设备的数据流进行有效的控制和管理. 2)当防火墙收到数据报文时,把 ...

  2. react官方脚手架搭建项目

    1.全局安装 npm install -g create-react-app 2. app后面还要给项目文件命名 create-react-app //是全局命令来创建react项目 3.然后按照提示 ...

  3. [leetcode]35. Search Insert Position寻找插入位置

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  4. [leetcode]39. Combination Sum组合之和

    Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), fin ...

  5. centos 7 安装redis 3.2.1

    https://www.cnblogs.com/zuidongfeng/p/8032505.html 下载安装包: http://download.redis.io/releases/ 根据需要自己选 ...

  6. 30.Mysql常见问题和应用技巧

    30.Mysql常见问题和应用技巧30.1 忘记Mysql的root密码30.2 如何处理MyISAM存储引擎的表损坏 30.2.1 方法一:使用myisamchk工具 30.2.2 方法二:使用SQ ...

  7. 谷歌开源的一个BTREE实现 Go语言

    // Copyright 2014 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "Licens ...

  8. 深入理解JVM(五)JVM优化策略

    5.2一些案例: 1.高性能硬件部署策略: (1)背景:某公司升级了硬件(CPU升级为4核,内存增加为16G),发现不定期出现网页失去响应. (2)原因:①内存增加之后,项目中有在内存中处理文件的大对 ...

  9. Java:Hashtable

    概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...

  10. django的简单原理

    一.自定义客户端和服务端的请求响应 1.客户端打开url,向服务器发出请求 2.服务端用socket写一个py,用于接收请求和做出响应 3.服务端接收请求 4.服务端模拟HTTP协议做出响应,状态行为 ...