这里引用了
https://blog.csdn.net/xielinrui123/article/details/85104446
使用的也是redis3.0.7
docker的安装就不做介绍,直接正题
docker pull redis:3.0.7 拉取指定版本的Redis镜像
docker pull ruby 拉取Ruby的镜像
然后下载redis的安装包
http://120.52.51.16/download.redis.io/releases/redis-3.0.7.tar.gz
下载后解压,copy出redis.conf文件
放在工作目录下,然后修改redis.conf的配置,开启Redis集群模式,打标志处
改完后创建Dockerfile
内容如下
FROM redis:3.0.7
EXPOSE 6379
#替换redis.conf
ADD redis.conf /redis.conf
#这个是当run执行时,执行redis-server语句,默认携带参数时/redis.conf
ENTRYPOINT ["redis-server", "/redis.conf"]
然后就是构建节点镜像,打开cmd,路径切到工作目录下,调用build构建镜像
docker build -t redis-cluster:3.0.7 .
接下来,
为了创建redis节点容器时能指定ip,需要创建一个redis-net的网络,在这个网络模块上创建一个容器,并指定ip
docker network create --subnet 172.10.0.0/16 redis-net
注意:这里的 172.10.0.0/16 ip可以随意写,可通过 docker network ls 来查询
接下来开始创建容器。6个redis节点,
docker run -d --net redis-net --ip 172.10.0.92 -p 8002:6379 --name redis-test2 redis-cluster:3.0.7
docker run -d --net redis-net --ip 172.10.0.91 -p 8001:6379 --name redis-test1 redis-cluster:3.0.7
docker run -d --net redis-net --ip 172.10.0.93 -p 8003:6379 --name redis-test3 redis-cluster:3.0.7
docker run -d --net redis-net --ip 172.10.0.94 -p 8004:6379 --name redis-test4 redis-cluster:3.0.7
docker run -d --net redis-net --ip 172.10.0.95 -p 8005:6379 --name redis-test5 redis-cluster:3.0.7
docker run -d --net redis-net --ip 172.10.0.96 -p 8006:6379 --name redis-test6 redis-cluster:3.0.7
然后在你的工作目录上再创建一个空文件夹,里面放入 redis-trib.rb ,这个文件在redis.x.x.x /src下面的,然后在redis-trib.rb同目录下创建一个Dockerfile,用来构建ruby镜像,里面填入
FROM ruby
ADD redis-trib.rb /redis-trib.rb
然后执行 docker build -t ruby-redis:3.0.7 .
然后创建容器,使用跟刚才运行的redis节点相同的network环境
docker run --net redis-net --ip 172.10.0.100 --name ruby -i -d ruby-redis
然后使用命令 docker exec -it ruby bash 进入容器内部
执行命令,用 --version 来指定特定版本的redis插件
gem install redis --version 3.0.7
最后搭建集群,执行redis-trb.rb脚本,将之前的ip输入
./redis-trib.rb create --replicas 1 172.10.0.91:6379 172.10.0.92:6379 172.10.0.93:6379 172.10.0.94:6379 172.10.0.95:6379 172.10.0.96:6379
输入yes
如此,全部节点就打开了