docker安装redis主从
#我们先创建一个redis-master
[ root@VM-12-16-centos ~]
#查看redis-master的IP,因为我们需要--link进行关联
[ root@VM-12-16-centos ~]
"SecondaryIPAddresses" : null,
"IPAddress" : "172.17.0.4" ,
"IPAddress" : "172.17.0.4" ,
#现在创建一个从,我们通过--link进行容器关联
[ root@VM-12-16-centos ~]
#查看下我们的容器是否启动
[ root@VM-12-16-centos ~]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4add66bb140a docker.io/redis "docker-entrypoint..." About an hour ago Up About an hour 6379/tcp redis-slave
73f95f2d53ff docker.io/redis "docker-entrypoint..." About an hour ago Up About an hour 6379/tcp redis-master
#查看宿主据下的docker启动的redis-master的data
[ root@VM-12-16-centos ~]
"Source" : "/var/lib/docker/volumes/4c1ddfe80b305f59a70cb639700e452174ee0b384f596a5a3bfa70ac8fabbb65/_data" ,
[ root@VM-12-16-centos ~]
#redis主从都启动了,但是docker启动的redis里面没有redis.conf,所以我们在宿主机上的redis目录下拷贝一份redis.conf
[ root@VM-12-16-centos _data]
#我们编辑redis.conf,相应的根据自己的需求配置,编辑完成保存退出
[ root@VM-12-16-centos _data]
69
88 protected-mode no
136 daemonize yes
158 pidfile /var/run/redis.pid
507 requirepass foobared
#下面我们需要配置从,配置好保存退出
[ root@VM-12-16-centos ~]
"Source" : "/var/lib/docker/volumes/6dc22a05b69fe84dcca03c5ea8c60721bbdcc417b2892d24cd0f928c4cdc3e69/_data" ,
[ root@VM-12-16-centos ~]
[ root@VM-12-16-centos _data]
[ root@VM-12-16-centos _data]
69
88 protected-mode no
136 daemonize yes
158 pidfile /var/run/redis.pid
286 replicaof 172.17.0.4 6379
293 masterauth foobared
#下面我们登陆到redis-master的容器中
[ root@VM-12-16-centos _data]
root@73f95f2d53ff:/data
root@73f95f2d53ff:/usr/local/bin
root@73f95f2d53ff:/usr/local/bin
root@73f95f2d53ff:/usr/local/bin
[ root@VM-12-16-centos _data]
root@4add66bb140a:/data
root@4add66bb140a:/usr/local/bin
root@4add66bb140a:/usr/local/bin
root@4add66bb140a:/usr/local/bin
#master上执行操作
127.0.0.1:6379> ping
( error) NOAUTH Authentication required.
127.0.0.1:6379> auth foobared
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> info replication
role:master
connected_slaves:1
slave0:ip= 172.17.0.5,port= 6379,state= online,offset= 9550,lag= 1
master_failover_state:no-failover
master_replid:1d43d187a55290422bb70c001b94b5ed7a3dfc16
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:9550
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:9550
127.0.0.1:6379>
127.0.0.1:6379> set guofei 6a6a
OK
127.0.0.1:6379> get guofei
"6a6a"
#slave上执行操作,master上设定了一个值从上也可以查看到
127.0.0.1:6379> auth foobared
OK
127.0.0.1:6379> info replication
role:slave
master_host:172.17.0.4
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:9879
slave_priority:100
slave_read_only:1
connected_slaves:0
master_failover_state:no-failover
master_replid:1d43d187a55290422bb70c001b94b5ed7a3dfc16
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:9879
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:9879
127.0.0.1:6379> get guofei
"6a6a"
127.0.0.1:6379>
这样我们的redis主从就完成了,当我在master上del guofei,从slave上也就会消失。