0 环境

0.1 主机系统:CentOS 7.5

系统版本

0.2 Redis 版本:5.0.0 以上

0.3 docker 版本:社区版 version 18.09.0

1 准备阶段

1.1 安装 docker

1.1.1 安装所需的软件包

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

1.1.2 使用以下命令来设置稳定的存储库。

$ sudo yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

1.1.3 安装docker ce(docker社区版-必须-版本会新一点)

$ sudo yum install -y docker-ce

2018年12月28日安装的版本:
docker版本

1.2 启动 docker

$ systemctl start docker

1.3 设置docker 开机自启

$ systemctl enable docker

1.4 开放需要的端口

$ firewall-cmd --permanent --zone=public --add-port=7001-7006/tcp
$ firewall-cmd --permanent --zone=public --add-port=17001-17006/tcp
$ firewall-cmd --reload  //重新加载配置
$ firewall-cmd --permanent --zone=public --list-ports  //查看开放的端口

1.5 获取 redis 镜像

$ docker pull redis

docker images 查看镜像
查看镜像

2 创建 redis 容器

2.1 创建 redis 的配置文件

在 /home 下新建 redis-cluster 文件夹,然后创建 redis-cluster.tmpl 文件,文件内容如下:

port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.1.157
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

命令查看配置:

$ cat /home/redis-cluster/redis-cluster.tmpl

2.2 在/home/redis-cluster下生成conf和data目标,并生成配置信息

$ for port in `seq 7001 7006`; do \
  mkdir -p ./${port}/conf \
  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done

共生成6个文件夹,从7001到7006,每个文件夹下包含data和conf文件夹,同时conf里面有redis.conf配置文件

2.3 创建6个redis容器

$ for port in `seq 7001 7006`; do \
  docker run -d -ti \
  -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /home/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net host \
  --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done

这里使用 host 网络方式启动容器。
至此,通过命令docker ps可查看刚刚生成的6个容器信息
docker ps 查看容器
查看容器

3 集群(redis 5.0 安装集群方法)

3.1 随便进入一个已运行的容器

$ docker exec -it redis-7001 bash

3.2 在容器中执行集群命令

/usr/local/bin/redis-cli --cluster create \
192.168.1.157:7001 \
192.168.1.157:7002 \
192.168.1.157:7003 \
192.168.1.157:7004 \
192.168.1.157:7005 \
192.168.1.157:7006 \
--cluster-replicas 1

输入命令后,中间需要输入 yes 确认。可以得到下面的信息说明集群成功了(文章有更新,图是旧的)
集群命令
参考文档:https://www.cnblogs.com/lianggp/p/8136222.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐