Dockerfile:
FROM alpine
RUN sed-i's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add? gcc g++ libc-dev? wget vim? openssl-dev make? linux-headers \
&& rm-rf/var/cache/apk/*
#通過選擇更小的鏡像,刪除不必要文件清理不必要的安裝緩存,從而瘦身鏡像
#創(chuàng)建相關(guān)目錄能夠看到日志信息跟數(shù)據(jù)跟配置文件
RUN mkdir-p/usr/src/redis \
&& mkdir-p/usr/src/redis/data \
&& mkdir-p/usr/src/redis/conf \
&& mkdir-p/usr/src/redis/log? \
&& mkdir-p/var/log/redis
RUN wget-O/usr/src/redis/redis-4.0.11.tar.gz"http://download.redis.io/releases/redis-4.0.11.tar.gz" \
&& tar-xzf/usr/src/redis/redis-4.0.11.tar.gz-C/usr/src/redis \
&& rm-rf/usr/src/redis/redis-4.0.11.tar.tgz
RUN cd/usr/src/redis/redis-4.0.11 &&? make&& make PREFIX=/usr/local/redis install \
&& ln-s/usr/local/redis/bin/*? /usr/local/bin/? && rm-rf/usr/src/redis/redis-4.0.11
#COPY ./conf/redis.conf? /usr/src/redis/conf
CMD ["/usr/local/bin/redis-server","/usr/src/redis/conf/redis.conf"]
構(gòu)建鏡像
docker build -t redis-ms-test .
設(shè)置指定網(wǎng)絡(luò)
docker network create --subnet=192.168.1.0/24 redis-network
運行主從容器
docker run -itd -v /usr/docker/test/03/redis/master:/usr/src/redis -p 6380:6379 --network=redis-network --ip=192.168.1.2 --name redis-master redis-ms-test
docker run -itd -v /usr/docker/test/03/redis/slave:/usr/src/redis -p 6380:6379 --network=redis-network --ip=192.168.1.2 --name redis-slave redis-ms-test
進(jìn)入容器
docker exec -it redis-master sh? ||?? docker exec -it redis-slave sh
測試redis服務(wù)是否可用
redis-cli -a 123456
開啟主從復(fù)制
127.0.0.1:6379 > slaveof 主機(jī)ip 端口號
查看信息
127.0.0.1:6379 > info replication
若想查看主從設(shè)置是否生效雀彼,可在主機(jī)添加數(shù)據(jù)逗载,再從從機(jī)查詢颊咬,若查詢得到顶捷,則證明設(shè)置成功捕仔。
tips:
(1)如若未生效瘾境,請查看防火墻是否開放相對應(yīng)端口铐刘。若為云服務(wù)器陪每,則查看是否添加相對應(yīng)網(wǎng)絡(luò)安全組信息
(2)默認(rèn)配置中,從節(jié)點不可寫入镰吵,只可讀取檩禾。若需要從節(jié)點可進(jìn)行寫入可修改 slave-read-only 為 no
(3)開啟主從復(fù)制的3種方式,
如若主機(jī)有設(shè)置密碼需修改配置文件下的masterauth :
# masterauth <master-password>? //設(shè)置主機(jī)密碼
查看日志文件
查看配置信息下的日志存放路徑(logfile)
例:logfile "/usr/src/redis/log/redis.log"
? ? ? ?cat /usr/src/redis/log/redis.log
在日志記錄中疤祭,可以大概看到主從復(fù)制的過程盼产。
關(guān)于redis的全量復(fù)制與部分復(fù)制,可參考文章:http://www.reibang.com/p/0e1ff8ea22bc
關(guān)于redis主從復(fù)制的原理以及過程勺馆,可參考文章:https://segmentfault.com/a/1190000018268350