實現(xiàn)redis主從之前迫靖,介紹docker網(wǎng)絡(luò)模式
docker安裝后用狱,默認(rèn)會創(chuàng)建下面三種網(wǎng)絡(luò)類型
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER
cac509fc172a bridge bridge
13d155562a61 host host
06f63397617c none null
可以通過 --network bridge 指定網(wǎng)絡(luò)類型
- bridge:橋接網(wǎng)絡(luò)
默認(rèn)情況下啟動的Docker容器财剖,都是使用 bridge填抬,Docker安裝時創(chuàng)建的橋接網(wǎng)絡(luò)实檀,每次Docker容器重啟時读规,會按照順序獲取對應(yīng)的IP地址丁频,這個就導(dǎo)致重啟下杉允,Docker的IP地址就變。 - none:
無指定網(wǎng)絡(luò) 使用 --network=none 席里,docker 容器就不會分配局域網(wǎng)的IP叔磷。 - host:
主機網(wǎng)絡(luò) 使用 --network=host,此時奖磁,Docker 容器的網(wǎng)絡(luò)會附屬在主機上改基,兩者是互通的。 例如咖为,在容器中運行一個Web服務(wù)秕狰,監(jiān)聽8080端口稠腊,則主 機的8080端口就會自動映射到容器中。
因為默認(rèn)的網(wǎng)絡(luò)不能制定固定的地址鸣哀,所以我們將創(chuàng)建自定義網(wǎng)絡(luò)架忌,并指定網(wǎng)段:192.168.1.0/24 并命名為mynetwork,指令 如下:
~ docker network create --subnet=192.160.1.0/24 mynetwork
~ docker run -itd --network=redis-network --ip 192.168.1.10 --name dockerName imagesName ~ docker network ls
~ docker network rm mynetwork
!注意:這個網(wǎng)絡(luò)段不要和宿主機的網(wǎng)絡(luò)端沖突我衬,不然會容易對宿主機產(chǎn)生影響
安裝使用docker叹放,且創(chuàng)建鏡像等操作看以往文章,連接如下
http://www.reibang.com/p/a75b4b6b8460
首先看下自己docker中的鏡像文件
docker images
根據(jù)centos/redis image 創(chuàng)建兩個容器 master slave 分別充當(dāng)主從服務(wù)
docker run -itd -p 6350:6379 --network=mynetwork --ip=192.160.1.150 --name redismaster centos/redis
docker run -itd -p 6340:6379 --network=mynetwork --ip=192.160.1.140 --name redisslave centos/redis
分別進入主從的容器開啟redis-server /usr/src/redis/redis-5.0.7/redis.conf
確保主服務(wù)器的redismaster的配置是ok的
別忘了修改下conf 中
protected-mode no // yes=>no
bind 0.0.0.0 // 更改ip
開啟后 先進入從服務(wù)器挠羔,在cli里設(shè)置一個值井仰,且查看
開啟主服務(wù),且設(shè)置cli值
重點來了 在從的cli中 輸入SLAVEOF IP PORT 實現(xiàn)同步
可以看到 slave 中的數(shù)據(jù)發(fā)生改變破加,變成master中的數(shù)據(jù)俱恶,此時再在master中添加數(shù)據(jù)
發(fā)現(xiàn)slave中的數(shù)據(jù)一模一樣
ok 完美