前置準備:3臺機器
192.168.75.128 6379 (主)
192.168.75.130 6379? (從)
192.168.75.131 6379? (從)
1燃异、拉取redis鏡像
docker pull redis
2虹统、配置Redis啟動配置文件,此處我創(chuàng)建一個專用目錄此疹,存放Redis相關(guān)數(shù)據(jù)及配置(分別在三臺機新建redis.conf文件)
mkdir /usr/local/redis/redis.conf
#在此目錄下現(xiàn)在redis.conf文件
http://download.redis.io/redis-stable/redis.conf
下載后豆拨,進入文件修改下面3個參數(shù)(在非編輯狀態(tài)下瓮恭,采用 /bind 來搜索字符串位置 )
vi? /usr/local/redis/redis.conf
# 修改下面三個配置參數(shù)
#bind 127.0.0.1# 如果bind選項為空的話,則允許所有來自于可用網(wǎng)絡(luò)接口的連接(bind 0.0.0.0與為空一樣的效果)
protected-mode no#保護模式驱犹,若為yes,只允許本地客戶端連接
appendonly yes#開啟后足画,Redis會把每次寫入的數(shù)據(jù)在接收后都寫入
?appendonly.aof 文件雄驹,每次啟動時Redis都會先把這個文件的數(shù)據(jù)讀入內(nèi)存里
#slaveof 192.168.75.128 6379? #Redis主機(Master)IP 端口(savle需要添加)?主機(slave)IP redis.conf與主機(Master的區(qū)別)
3、分別啟動三臺機的Redis服務(wù)
docker run --restart always --name redis -p 6379:6379 -v /usr/local/redis:/data -d redis redis-server /data/redis.conf
3淹辞、查看容器服務(wù)
docker ps
#驗證服務(wù)器之間是否正常通信
在192.168.75.128服務(wù)器檢驗 192.168.75.130医舆、 192.168.75.131
docker exec -it redis redis-cli -h 192.168.75.130 -p 6379
docker exec -it redis redis-cli -h 192.168.75.131 -p 6379
?在192.168.75.130服務(wù)器檢驗?192.168.75.128、?192.168.75.131
docker exec -it redis redis-cli -h 192.168.75.128 -p 6379
docker exec -it redis redis-cli -h 192.168.75.131 -p 6379??
?在192.168.75.131服務(wù)器檢驗?192.168.75.128象缀、?192.168.75.130
docker exec -it redis redis-cli -h 192.168.75.128 -p 6379
docker exec -it redis redis-cli -h 192.168.75.130 -p 6379? ? ?
成功如下:
若失敗則需排查問題:
1蔬将、防火墻是否關(guān)閉
2、redis配置bind通信是否開啟
#進入master服務(wù)查看主從服務(wù)
docker exec -it redis redis-cli info replication
此時服務(wù)器(slave)已經(jīng)掛載
#進入master服務(wù)查看主從服務(wù)
docker exec -it redis redis-cli info replication