版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40254498/article/details/79219355
废话不多说直接进入主题(第一次写,有不对的地方请指教。。大牛就放过我把)
docker 安装我采用的是window10 hyper-v ,直装版,这里就不做操作了
- (我采用3.0.7的redis版本,用其他也行)
# docker pull redis:3.0.7
- 构建 redis-cluster
创建Dockerfile 文件
FROM redis:3.0.7
EXPOSE 6379
ADD redis.conf /redis.conf
ENTRYPOINT [ "redis-server", "/redis.conf" ]
dockerfile文件阅读也比较简单~
接下来
在同目录下放redis.conf(3.0.7版本)的配置文件
- 修改dockerfile目录下的redis.conf 文件
-
构建 dokcer images
进入dockerfile目录
# docker build-t “redis-cluster” .
注意后面有一个点当前目录
没写tag 默认latest
- 为了使容器ip固定 重启后也是一样的
# docker network create --subnet=172.11.0.0/16 redis //创建网络
- 创建 redis-cluster 结点容器
# docker run -d --net redis --ip 172.11.0.91 -p 8001:6379 --name redis1redis-cluster
# docker run -d --net redis --ip 172.11.0.92 -p 8002:6379 --name redis2redis-cluster
# docker run -d --net redis --ip 172.11.0.93 -p 8003:6379 --name redis3redis-cluster
# docker run -d --net redis --ip 172.11.0.94 -p 8004:6379 --name redis4redis-cluster
# docker run -d --net redis --ip 172.11.0.95 -p 8005:6379 --name redis5redis-cluster
# docker run -d --net redis --ip 172.11.0.96 -p 8006:6379 --name redis6redis-cluster
有的人说开发一个端口给客户端使用就好了 就把 -p 和后面的端口去掉就好了
- 接下来使用官方的 redis-trib.rb (linux直接安装ruby 启动就好了)
所以要下载ruby
这里直接
# docker pull ruby
然后通过构建Dockerfile制作redis集群管理
FROM ruby
ADD redis-3.0.7.gem /redis-3.0.7.gem
ADD redis-trib.rb /redis-trib.rb
这两个文件放在目录下
Redis-3.0.7.gem 基于国情要导入,可以直接去网上下载
如果不下载就不用导入
直接 gem install redis –version 3.0.7
就可以直接安装
去掉dockerfile 上面那一行
然后进入该目录
# docker build “ruby-redis” .
- 启动 ruby-redis
# docker run --net=redis --ip 172.11.0.100--name ruby11 -i -d ruby-redis
要在同一个网络 redis 才能互连
- 进入改ruby 容器
# docker exec -it ruby11 /bin/bash
安装redis-gem
# gem install -l redis-3.0.7.gem 或者
# gem install redis –version 3.0.7
- 接下来 启动集群
# ./redis-trib.rb create --replicas 1 172.11.0.91:6379172.11.0.92:6379 172.11.0.93:6379 172.11.0.94:6379 172.11.0.95:6379 172.11.0.96:6379
1表示 master 后面有一个 slave cluster
然后输入yes 就可以了
- 随便登录一个节点测试连接集群测试
# cluster node
# cluster info
设置k-v 测试
切换结点测试
宿主机测试:
Docker ip 10.0.75.1
端口就是容器对外开放的端口
另一个是容器间端口使用
看不懂可以到我简书上,有图文! —— [ 简书 ]