- 编译redis源码
redis各版本下载地址:http://download.redis.io/releases/
mkdir -p /root/d-server/redis/cluster;
cd /root/d-server/redis/cluster;
wget http://download.redis.io/releases/redis-3.0.7.tar.gz;
tar xvf redis-3.0.7.tar.gz;
cd redis-3.0.7;
#若未安装gcc yum install -y gcc
make
- 修改redis配置文件
cp ./redis-3.0.7/redis.conf ../;
-----------------------------
daemonize no #是否后台允许
port 6379
logfile "/var/log/redis/redis-server.log" #日志路径
appendonly yes #是否开启操作记录日志
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000 #集群节点超时限制
-----------------------------
- 使用alpine底包制作redis节点镜像
# DockerFile
FROM 47.1.2.1:8888/dyiwen/alpine:laster #一个alpine底包
RUN apk add gcc
RUN apk add make
RUN mkdir -p /redis/conf
ADD redis-3.0.7.tar.gz /
RUN mv redis-3.0.7.tar.gz redis
RUN cd redis/ && make
RUN mkdir -p /redis/conf
ADD redis.conf /redis/conf
RUN apk del gcc
RUN apk del make
WORKDIR /redis
ENTRYPOINT ["/redis/redis-server", "/redis/conf/
EXPOSE 6379
----------------------------------------------------
#制作基础镜像
docker build -t redis-node:apline-307 .
- 依次创建各节点的映射配置文件
- 创建docker-compose文件
version: '3.4'
services:
redis01:
restart: always
image: redis-node:apline-307
network_mode: "host"
container_name: redis01
ports:
- 30001:7001
volumes:
- /root/d-server/redis/cluster/conf/7001:/redis/conf
logging:
driver: json-file
options:
max-size: "10m"
max-file: "10"
redis02:
restart: always
image: redis-node:apline-307
network_mode: "host"
container_name: redis02
volumes:
- /root/d-server/redis/cluster/conf/7002:/redis/conf
logging:
driver: json-file
options:
max-size: "10m"
max-file: "10"
redis03:
restart: always
image: redis-node:apline-307
network_mode: "host"
container_name: redis03
volumes:
- /root/d-server/redis/cluster/conf/7003:/redis/conf
logging:
driver: json-file
options:
max-size: "10m"
max-file: "10"
redis04:
restart: always
image: redis-node:apline-307
network_mode: "host"
container_name: redis04
volumes:
- /root/d-server/redis/cluster/conf/7004:/redis/conf
logging:
driver: json-file
options:
max-size: "10m"
max-file: "10"
redis05:
restart: always
image: redis-node:apline-307
network_mode: "host"
container_name: redis05
volumes:
- /root/d-server/redis/cluster/conf/7005:/redis/conf
logging:
driver: json-file
options:
max-size: "10m"
max-file: "10"
redis06:
restart: always
image: redis-node:apline-307
network_mode: "host"
container_name: redis06
volumes:
- /root/d-server/redis/cluster/conf/7006:/redis/conf
logging:
driver: json-file
options:
max-size: "10m"
max-file: "10"
- 查看redis各节点的IP地址
docker inspect redis01 redis02 redis03 redis04 redis05 redis06 | grep “IPAddress”| grep 172
- 安装ruby环境
yum install -y ruby;
yum install -y rubygems;
ruby -v #查看版本 要求大于等于1.9
#安装redis的ruby包
wget https://rubygems.org/downloads/redis-3.0.7.gem --no-check-certificate;
gem install -l redis-3.0.7.gem;
- 启动集群
cd /root/d-server/redis/cluster/redis-3.0.7/src;
./redis-trib.rb create --replicas 1 172.21.0.2:6379 \
172.21.0.3:6379 \
172.21.0.4:6379 \
172.21.0.5:6379 \
172.21.0.6:6379 \
172.21.0.7:6379
- 连接集群,查看集群信息
redis-cli -p 30001 –c
127.0.0.1:30001> info
127.0.0.1:30001> CLUSTER INFO 打印集群的信息
127.0.0.1:30001> CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。