Docker Swarm redis 集群搭建

环境1:

  • 系统:Linux Centos 7.4 x64
  • 内核:Linux docker 3.10.0-693.2.2.el7.x86_64
  • Docker 版本:18.09.1
  • redis 版本:redis-4.0.9
  • 主机数量:1台
  • 主机地址:192.168.1.81

环境2:

  • 已搭建 Docker Swarm 管理
  • 已搭建 Docker 私有仓库
  • 已搭建 NFS 存储

目录结构

└── redis
  ├── Dockerfile
  ├── redis-4.0.9.tar.gz
  └── redis.conf

└── service_redis.yml


下载

  • redis压缩包
  • 下载地址:https://pan.baidu.com/s/14Sr47StorzgDYMeH054waA
  • 密码:xlln

1、创建dockerfile

FROM centos:
MAINTAINER xiangsikai
ENV LANG en_US.UTF-
ENV TZ=Asia/Shanghai
RUN yum install -y gcc gcc-c++ tcl sudo
ADD redis-4.0..tar.gz /usr/local/
RUN mkdir /usr/local/redis-4.0./data && mkdir /usr/local/redis-4.0./logs && mkdir /usr/local/redis-4.0./run
RUN cd /usr/local/redis-4.0./ && make && make install
RUN rm -rf /usr/local/redis-4.0./redis.conf
COPY redis.conf /usr/local/redis-4.0./redis.conf
RUN useradd redis && chown -R redis:redis /usr/local/redis-4.0./ && chown -R redis:redis /usr/local/bin/redis*
CMD ["sudo","-u","redis","/usr/local/bin/redis-server","/usr/local/redis-4.0.9/redis.conf"]
EXPOSE
# 指定系统镜像版本
FROM centos:6
# 指定管理员名称
MAINTAINER xiangsikai
# 添加变量,指定中文编码
ENV LANG en_US.UTF-8
# 添加变量,同步系统时间
ENV TZ=Asia/Shanghai
# 添加命令
RUN yum install -y gcc gcc-c++ tcl sudo
# 添加文件
ADD redis-4.0.9.tar.gz /usr/local/
# 添加命令
RUN mkdir /usr/local/redis-4.0.9/data && mkdir /usr/local/redis-4.0.9/logs && mkdir /usr/local/redis-4.0.9/run
# 添加命令
RUN cd /usr/local/redis-4.0.9/ && make && make install
# 添加命令件
RUN rm -rf /usr/local/redis-4.0.9/redis.conf
# 上传文件,上传本地文件到容器
COPY redis.conf /usr/local/redis-4.0.9/redis.conf
# 添加命令
RUN useradd redis && chown -R redis:redis /usr/local/redis-4.0.9/ && chown -R redis:redis /usr/local/bin/redis*
# 启动命令
CMD ["sudo","-u","redis","/usr/local/bin/redis-server","/usr/local/redis-4.0.9/redis.conf"]
# 开放端口
EXPOSE 6379

文件注释

2、创建镜像(redis目录下)

docker build -t 192.168.1.81:5000/redis:v1 .

3、上传镜像

docker push 192.168.1.81:5000/redis:v1

4、创建 service_redis.yml

version: '3.7'
services: redis:
image: 192.168.1.81:5000/redis:v1
ports:
- 6380:6379
networks:
- networkce
deploy:
mode: replicated
replicas: 2
update_config:
parallelism: 1
delay: 10s
failure_action: rollback
order: start-first
rollback_config:
parallelism: 1
delay: 10s
failure_action: rollback
order: start-first
volumes:
- type: volume
source: nfs-redis_log
target: /usr/local/redis-4.0.9/logs
volume:
nocopy: true networks:
networkce:
driver: overlay volumes:
nfs-redis_log:
driver: local
driver_opts:
type: "nfs"
o: "addr=192.168.1.81,vers=4,soft,timeo=180,bg,tcp,rw"
device: "192.168.1.81:/docker/service/zs/redis/log"
# 指定版本
version: '3.7'
# 服务
services: # 指定服务名
redis:
# 指定使用镜像
image: 192.168.1.81:5000/redis:v1
# 指定开放端口
ports:
- 6379:6379
# 指定网络
networks:
- networkce
# 管理容器
deploy:
# 设置副本模式
mode: replicated
# 副本数
replicas: 2
# 更新配置
update_config:
# 每次更新数量
parallelism: 1
# 每次更新时间
delay: 10s
# 更新失败设置,rollback回滚
failure_action: rollback
# 更新状态,start-firest 更新同时叠加旧版本,之后删除
order: start-first
# 回滚配置
rollback_config:
# 每次回滚数量
parallelism: 1
# 每次回滚时间
delay: 10s
# 回滚失败设置,rollback回滚
failure_action: rollback
# 回滚状态,start-firest 回滚同时叠加旧版本,之后删除
order: start-first
# 配置持久化数据
volumes:
# 数据类型
- type: volume
# 设置名称
source: nfs-redis_log
# 挂载容器路径
target: /usr/local/redis-4.0.9/logs
# 默认
volume:
nocopy: true # 网络
networks:
# 添加网络名称
networkce:
driver: overlay # 数据持久化
volumes:
# 数据名称
nfs-redis_log:
driver: local
driver_opts:
# 类型
type: "nfs"
# 官方默认配置
o: "addr=192.168.1.81,vers=4,soft,timeo=180,bg,tcp,rw"
device: "192.168.1.81:/docker/service/zs/redis/log"

文件注释

5、创建服务

docker stack deploy -c service_redis.yml redis

Docker Swarm redis 集群搭建的更多相关文章

  1. 基于Docker的redis集群搭建

    Redis集群官方介绍:http://www.redis.cn/topics/cluster-tutorial.html 基于Docker搭建Redis集群 环境:6个节点,三主三从 制作Redis镜 ...

  2. docker 实现redis集群搭建

    摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群. 首先,我们需要理论知识:Redis Cluster是Re ...

  3. docker实验--redis集群搭建

    背景介绍: 我经常在做一些小项目的时候,采用了Redis来做缓存,但是都是基于单节点的,一旦redis挂了,整个项目就挂了.于是乎,想到了多节点集群的方式来使用,就开始折腾着怎么去搭建这个集群.在网上 ...

  4. Docker Swarm nginx 集群搭建

    环境1: 系统:Linux Centos 7.4 x64 内核:Linux docker 3.10.0-693.2.2.el7.x86_64 Docker 版本:18.09.1 redis 版本:ng ...

  5. 基于Dokcer搭建Redis集群搭建(主从集群)

    最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题,我觉得之前写的这篇 <基于Docker的Redis集群搭建> 文章一定是有问题了,所以我花了几分钟浏览之前的文章总结了下面几 ...

  6. docker redis4.0集群搭建

    一.前言 redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地 ...

  7. 25.redis集群搭建笔记

    ###Redis集群### 0.准备 软件: redis-3.0.0.gem redis-3.0.0.tar.gz#源码   1.安装ruby环境 redis基于ruby槽位计算,hash算法技术,k ...

  8. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  9. 二、redis集群搭建

    redis集群搭建 redis3.0后支持集群.集群中应该至少有三个节点,每个节点有一备份节点.需要6台服务器.搭建伪分布式,需要6个redis实例.搭建集群的步骤: 一.安装单机版redis 第一步 ...

随机推荐

  1. 【nginx】解决Nginx重启时提示nginx: [emerg] bind() to 0.0.0.0:80错误

    Nginx是一款轻量级的Web服务器,特点是占有内存少,并发能力强,因而使用比较广泛,蜗牛今天在一个VPS上重启Nginx时提示“nginx: [emerg] bind() to 0.0.0.0:80 ...

  2. Java 一致性Hash算法的学习

    目前我们很多时候都是在做分布式系统,但是我们需把客户端的请求均匀的分布到N个服务器中,一般我们可以考虑通过Object的HashCodeHash%N,通过取余,将客户端的请求分布到不同的的服务端.但是 ...

  3. GO语言-基础语法:条件判断

    1. IF判断(aa.txt内容:asdfgh.bb.txt内容:12345) package main import ( "io/ioutil" "fmt" ...

  4. linux 系统全盘恢复

    恢复备份 一.准备 1. 从 u盘启动,进入 live-cd 系统,配置好网络和镜像源,更新一下仓库的数据库. sudo pacman -Syy 2. 安装 timeshift 这个软件. sudo ...

  5. Codeforces 1136E - Nastya Hasn't Written a Legend - [线段树+二分]

    题目链接:https://codeforces.com/problemset/problem/1136/E 题意: 给出一个 $a[1 \sim n]$,以及一个 $k[1 \sim (n-1)]$, ...

  6. 委托/lambda表达式/事件

    委托 委托是执行安全的类,它的使用方式与类类似(即都需要定义再实例化),不同在于,类在实例化之后叫对象或类的实例,但委托在实例化后仍叫委托,委托可以把函数作为参数传递. 语法声明: delegate ...

  7. angular--获取时间方法services

    写了一些公用方法获取自然周.传入开始和结束日期,获取中间全部日期等方法 .service('DateServices', [function () { // 获取某年自然周的方法 (如果是当年,只返回 ...

  8. ssm中整合Mybatis可以扫描到放在mapper下面的xml文件的方法

    mybatis配置时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 解决方法有两种: ...

  9. GIL学习

    GIL锁 一.GIL的简单概述 二.GIL对于多线程的影响 三.解决GIL对于多线程影响的方案 回到顶部 一.GIL的简单概述 1.概念 GIL ( Global Interperter Lock ) ...

  10. ORA-39006错误原因及解决办法

    使用impdp导出数据时碰到ora-39006错误,错误提示如下所示: ORA-39006: internal error ORA-39213: Metadata processing is not ...