第一步:拉取镜像
docker pull redis
第二步:创建主master
docker run \
--name redis \
-p 6379:6379 \
-v /home/redis/data:/data \
-v /home/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:6.0 \
redis-server /etc/redis/redis.conf
第三步:配置master的redis.conf
在/home/redis/conf目录下创建redis.conf配置文件,可从官网上拉取下来
内容需进行修改一下:
requirepass 123456 # 可以不配置
bind 0.0.0.0 #允许外部访问,127.0.0.1只允许本机访问
第四步:创建从机redis
docker run \
--name redis-slave2 \
-p 6381:6379 \
-v /home/redis-slave2/data:/data \
-v /home/redis-slave2/conf/redis.conf:/etc/redis/redis.conf \
-d redis:6.0 /etc/redis/redis.conf
第五步:配置从机的redis.conf
获取master容器的ip地址:docker inspect redis
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
去到相应的路径下修改从机的redis.conf的内容如下:
vim redis.conf
replicaof master的ip master的端口号 # 例如: replicaof 172.17.0.4 6379
masterauth 123456 # 对应这主机的密码,master若没有密码则不用填写
第六步:查看配置情况
进入容器:docker exec -it redis-slave2 /bin/bash
访问: redis-cli
输入: info
可查询主从配置情况
# Replication
role:slave
master_host:172.17.0.4
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_repl_offset:14
slave_priority:100
slave_read_only:1
connected_slaves:0
主机的主从配置情况如下:
# Replication
role:master
connected_slaves:2
slave0:ip=172.17.0.5,port=6379,state=online,offset=966,lag=0
slave1:ip=172.17.0.6,port=6379,state=online,offset=966,lag=1