使用Docker安装并部署Redis集群

Ruby环境准备

建议版本:2.2.3+(目前rvm管理库的最高版本是2.6+

  1. 安装curl : yum install curl
  2. 升级nss版本 : yum -y update nss
  3. 安装rvm : curl -L get.rvm.io | bash -s stable
  4. 保存执行变更 : source /etc/profile.d/rvm.sh
  5. 查看Ruby版本 :rvm list known
  6. 升级Ruby版本 :rvm install 2.5.5
  7. 使用Ruby版本 :rvm use ruby-2.5.5
  8. 查看Ruby版本 :ruby -v
  9. 安装RubyGem :yum install rubygems
    10.安装Redis Gem : gem install redis --version 3.0.7

Docker创建Redis镜像

  1. 创建Redis本地文件夹 : mkdir /usr/docker_root/redis_cluster
  2. 进入Redis本地文件夹 :cd /usr/docker_root/redis_cluster
  3. 下载Redis压缩包 :wget http://download.redis.io/releases/redis-3.0.7.tar.gz
  4. 解压Redis压缩包 :tar zxvf redis-3.0.7.tar.gz
  5. 进入解压后的文件夹: cd redis-3.0.7
  6. 编译Redis : make
  7. 修改配置文件核心参数: vi redis.conf
#根据自己的情况调整就可以(笔者使用的默认配置)
bind 0.0.0.0
#后台运行
daemonize no
#日志存储路径
logfile "/var/log/redis/redis-server.log"
#redis访问密码
requirepass yourpass
#集群安全验证
masterauth yourpass

#是否开启append-only Log日志
appendonly yes
#启用集群模式
cluster-enabled yes
#集群节点日志路径
cluster-config-file nodes.conf
#集群节点超时时间
cluster-node-timeout 5000
  1. 进入目录 : cd /usr/docker_root/redis_cluster
  2. 创建Redis基础镜像 : vim Dockerfile
FROM centos:7
ADD redis-3.0.7.tar.gz /
RUN mkdir -p /redis
ADD /redis-3.0.7/redis.conf /redis/

RUN yum -y update
RUN yum install -y gcc make   
  
WORKDIR /redis-3.0.7
RUN make
RUN mv /redis-3.0.7/src/redis-server /redis/
  
WORKDIR /
RUN rm -rf /redis-3.0.7
RUN yum remove -y gcc make

VOLUME ["/var/log/redis/"]
  
EXPOSE 6379

  1. 构建基础镜像 : docker build -t redis:3.0.7 .
  2. 创建节点目录 : mkdir /usr/docker_root/redis_node
  3. 进入节点目录 : cd /usr/docker_root/redis_node
  4. 创建Redis节点镜像 : vim Dockerfile
FROM redis:3.0.7
ENTRYPOINT ["/redis/redis-server", "/redis/redis.conf"]
  1. 构建Redis节点镜像 : docker build -t redis-cluster:3.0.7 .
  2. 检查镜像 : docker images
  3. 启动镜像 :
docker run -d --name redis01 -p 6379:6379 redis-cluster:3.0.7 
docker run -d --name redis02 redis-cluster:3.0.7
docker run -d --name redis03 redis-cluster:3.0.7
docker run -d --name redis04 redis-cluster:3.0.7
docker run -d --name redis05 redis-cluster:3.0.7 
docker run -d --name redis06 redis-cluster:3.0.7
  1. 查看Redis节点IP : docker inspect redis01 redis02 redis03 redis04 redis05 redis06 | grep “IPAddress”| grep 172
  2. 查找配置文件 :find / -name client.rb 【中间有redis目录的那个】
  3. 修改配置文件 :vim /usr/local/rvm/gems/ruby-2.3.8/gems/redis-4.1.2/lib/redis/client.rb
DEFAULTS = {
      :url => lambda { ENV["REDIS_URL"] },
      :scheme => "redis",
      :host => "127.0.0.1",
      :port => 6379,
      :path => nil,
      :timeout => 5.0,
      :password => "xxxxxx",  #主要是修改这个,要和redis.conf配置的密码一致,如果没有密码就删掉
      :db => 0,
      :driver => nil,
      :id => nil,
      :tcp_keepalive => 0,
      :reconnect_attempts => 1,
      :inherit_socket => false
    }
  1. 搭建启动集群: 每个人的IP都不一样,不要全部Copy!
cd /usr/docker_root/redis_cluster/redis-3.0.7/src/
./redis-trib.rb create --replicas 1 172.19.0.6:6379 \
172.17.0.1:6379 \
172.17.0.2:6379 \
172.17.0.3:6379 \
172.17.0.4:6379 \
172.17.0.5:6379

你可能感兴趣的:(docker)