前面mysql容器重建後須要從新運行 change master to 命令綁定關聯,8.0須要命令行下生效。
redis首先想到用官方的,沒想到進去各個基本shell命令沒法使用,因此先棄了。此次因爲官方沒有提供基本的配置文件,解壓redis-5.0.5.tar.gz複製 主配置redis.conf、哨兵配置sentinel.conf 到當前目錄,如:/root/tmp/dk/redis。mysql
搜索修改git
# master服務器 redis.conf: - # requirepass foobared + requirepass 123456 - dir ./ # 持久化數據目錄 + dir /data - appendonly no # 開啓aof + appendonly yes - bind 127.0.0.1 # 容許外網ip訪問 + bind 0.0.0.0 // 從服務器:主+額外 redis.conf: // remote_host:本身的內網、外網地址 - # replicaof <masterip> <masterport> + replicaof remote_host 6379 - # masterauth <master-password> + masterauth 123456
# 建立容器運行 []:~/tmp/dk/redis# docker run --name rm \ -p 6379:6379 --restart=always -v \ /root/tmp/dk/redis/data:/data -v \ /root/tmp/dk/redis/redis.conf:/etc/redis/redis.conf \ -d cffycls/redis5:1.6 redis-server /etc/redis/redis.conf []:~/tmp/dk/redis# docker run --name rs \ -p 6381:6379 --restart=always -v \ /root/tmp/dk/redis_slave/data:/data -v \ /root/tmp/dk/redis_slave/redis.conf:/etc/redis/redis.conf \ -d cffycls/redis5:1.6 redis-server /etc/redis/redis.conf
鏡像是redis5.0.5編譯的,直接啓動後就是主從同步的,不須要向mysql同樣進行配置(這裏起始數據不一致時:修改到當前最終配置,重啓即同步無缺)。直接同步成功,在master、slave查看關係 info replication均有對方信息。github
"master-slave 架構的描述改成 master-replica,SLAVEOF 提供別名 REPLICAOF,因此仍然可使用 SLAVEOF"。redis
這裏是通過屢次測試,發現:容器重啓,redis也會正常啓動。daemonize no 注意保持是 no,不然會報錯:
Error response from daemon: Container xx is restarting, wait until the container is running
可知容器內的守護進程與docker自己有衝突,保持默認的 daemonize no 正常,不要先入爲主的修改參數,考慮與主機安裝的不一樣。sql
已經設置過密碼,因此protected-mode保持默認值。docker
這裏是通過屢次修改配置重啓測試,得知master-slave:127.0.0.1-127.0.0.1能夠訪問,但單主從關係沒有創建;0.0.0.0-127.0.0.1正常,反正是推薦0.0.0.0-0.0.0.0。shell
同mysql同樣,須要重啓加載配置的,使用 docker restart rm rs 重啓方式。哨兵的配置於此相似,略過。
這裏基於以前redis的Dockerfile修改完善,推送到 cffycls/redis5:1.6 官方公共雲上了。服務器