一、安裝Redis
1.拉取官方鏡像
[root@localhost /]# docker pull redis:5.0.7
2.下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為redis,標簽為5.0.7的鏡像。
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/redis 5.0.7 dcf9ec9265e0 3 months ago 98.2 MB
3.運行容器
[root@localhost ~]# docker run --name redis-6379 -p 6379:6379 -d redis:5.0.7 redis-server
二、主從復制
1.運行redis鏡像
首先使用docker啟動3個redis容器服務,分別使用到6379、6380、6381端口
docker run --name redis-6379 -p 6379:6379 -d redis:3.2 redis-server docker run --name redis-6380 -p 6380:6379 -d redis:3.2 redis-server docker run --name redis-6381 -p 6381:6379 -d redis:3.2 redis-server
2.配置redis集群
使用如下命令查看容器內網的ip地址等信息
docker inspect containerid(容器ID)
3個redis的內網ip地址為:
redis-6379:172.17.0.3:6379 redis-6380:172.17.0.4:6379 redis-6381:172.17.0.5:6379
進入docker容器內部,查看當前redis角色(主master還是從slave)(命令:info replication)
127.0.0.1:6379> info replication # Replication role:master connected_slaves:0 master_replid:a44f60e68f4d128750c2d09a00c9d4a1b6b643d1 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
可以看到當前3台redis都是master角色,使用redis-cli命令修改redis-6380、redis-6381的主機為172.17.0.3:6379
[root@localhost ~]# docker exec -it redis-6381 redis-cli 127.0.0.1:6379> slaveof 172.17.0.3 6379 OK
再次查看主機info,已經有兩個從機了(.4 和 .5)
127.0.0.1:6379> info replication # Replication role:master connected_slaves:2 slave0:ip=172.17.0.5,port=6379,state=online,offset=308,lag=1 slave1:ip=172.17.0.6,port=6379,state=online,offset=308,lag=1 master_replid:2392e41f862b441aed8e66c6fe9483e772c671b6 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:308 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:308
至此,redis下的主從配置就ok了。