mysql容器重建前,需要重新运行changemastertocommandbindingassociation,8.0需要在命令行下生效。Redis最先想到的是用官方的,没想到基本的shell命令都用不了,就先放弃了。这次因为官方没有提供基础配置文件,所以解压redis-5.0.5.tar.gz,将主要配置redis.conf和sentinel配置sentinel.conf复制到当前目录,如:/root/tmp/dk/redis。规划:master:172.1.13.11slave:172.1.13.121,使配置文件搜索修改Redis_Master服务器redis.conf:-#requirepassfoobared+requirepass123456-dir./#持久化数据目录+dir/data-appendonlyno#开启aof+appendonlyyes-bind127.0.0.1#允许外网ip访问+bind0.0.0.0Redis_Slaveslaveserver:master+additionalredis.conf://remote_host:自己的内网,外网地址-#replicaof+replicaofremote_host6379-#masterauth+masterauth123456其中remote_host为172.1.13.112,启动容器#创建容器run[]:~/tmp/dk/redis#dockerrun--namerm\-p6379:6379--restart=always-v\/root/tmp/dk/redis/data:/data-v\/root/tmp/dk/redis/redis.conf:/etc/redis/redis.conf\-dcffycls/redis5:1.6redis-server/etc/redis/redis.conf[]:~/tmp/dk/redis#dockerrun--namers\-p6381:6379--restart=always-v\/root/tmp/dk/redis_slave/data:/data-v\/root/tmp/dk/redis_slave/redis.conf:/etc/redis/redis.conf\-dcffycls/redis5:1.6redis-server/etc/redis/redis.conf镜像是redis5.0.5编译,直接启动后为主从同步,不需要像mysql那样配置(这里初始数据不一致时:修改为当前最终配置,重启同步完成).直接同步成功,可以在master和slave的Relationalinforeplication中查看对方的信息。三、其他情况replicaof和SLAVEOF的描述“master-slave架构改为master-replica,SLAVEOF提供了一个别名REPLICAOF,所以SLAVEOF仍然可以使用”。b.你想在这里守护进程吗?经过多次测试发现:当容器重启时,redis也会正常启动。daemonizeno注意保持为no,否则会报错:Errorresponsefromdaemon:Containerxxisrestarting,waituntilthecontainerisrunning.可以看出容器中的daemon进程与docker本身有冲突。保持默认的daemonizenonormal,不做先入为主的修改参数,考虑和host安装不同。C。是否修改绑定地址的密码,所以protected-mode保持默认值。protected-modeyes#关闭保护模式,让外网可以访问protected-modeno#开启protected-mode保护模式,需要配置bindip或者设置访问密码。这里是经过多次修改配置重启测试后的主从:127.0.0.1-127.0.0.1可以访问,但是单主从关系没有建立;0.0.0.0-127.0.0.1是正常的,反正推荐0.0.0.0-0.0.0.0。和mysql一样,如果需要重启加载配置,使用dockerrestartrmrs重启。哨兵配置与此类似,略过。这里基于之前的redisDockerfile修改,已经推送到cffycls/redis5:1.6官方公有云。4、单主从宕机master_link_status:down1首先验证配置文件是否正确;2确认网络连通性;3:#查看日志dockerlogsrsErrorreplytoPINGfrommaster:'-MISCONFRedis配置为保存RDB快照,但目前无法持久化到磁盘上。禁用可能修改数据集的命令,因为此实例配置为在RDB快照失败时在写入期间报告错误ErrorreplyPINGfrommaster:'-MISCONFRedisisconfiguredtosaveRDBsnapshots,butItcurrentlynotpersistedtodisk.可以修改数据集的命令被禁用,因为此实例配置为报告错误Redis_Masterstop-writes-on-bgsave-errornoErrortryingtorenamethetemporaryAOFfiletemp-rewriteaof-bg-336duringwritesiftheRDBsnapshotfails。aof变成appendonly.aofMISCONFRedis配置为保存RDB快照,但目前无法持久化到磁盘上。可能修改数据集的命令被禁用,因为此实例配置为在RDB快照失败时在写入期间报告错误(stop-writes-on-bgsave-error选项)。有关RDB错误的详细信息,请检查Redis日志。我这里用的远程盘后有问题,改用本地盘