拉取redis镜像
docker pull docker.io/redis:3.2
然后给一个Dockerfile文件吧
ruby的
FROM ruby:2.2.5
RUN gem install redis
ADD ./redis-3.2.6.tar.gz /usr/local
RUN cd /usr/local && ln -s redis-3.2.6 redis
以三台服务器为例,Docker容器创建运行docker run -d --name redis1 --net=host -v /etc/localtime:/etc/localtime:ro docker.io/redis:3.2 redis-server --port 7111 --cluster-enabled yes,--net=host是使用母机的ip。
docker run -it --net=host --rm build_repo/ruby /usr/local/redis/src/redis-trib.rb create --replicas 1 172.31.27.67:7111 172.31.27.67:7112 172.31.27.68:7113 172.31.27.68:7114 172.31.27.69:7115 172.31.27.69:7116
注意,此处如果加了CentOS 7的防火墙,以7111端口为例,一定要把redis总线端口17111添加进去
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.31.27.69" port protocol="tcp" port="17111" accept"
service firewalld restart
运行ruby一定要加--net=host,否则会被防火墙挡住,无法连接节点。