实现redis主从之前,介绍docker网络模式
docker安装后,默认会创建下面三种网络类型
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER
cac509fc172a bridge bridge
13d155562a61 host host
06f63397617c none null
可以通过 --network bridge 指定网络类型
- bridge:桥接网络
默认情况下启动的Docker容器,都是使用 bridge,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,Docker的IP地址就变。 - none:
无指定网络 使用 --network=none ,docker 容器就不会分配局域网的IP。 - host:
主机网络 使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。 例如,在容器中运行一个Web服务,监听8080端口,则主 机的8080端口就会自动映射到容器中。
因为默认的网络不能制定固定的地址,所以我们将创建自定义网络,并指定网段: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
!注意:这个网络段不要和宿主机的网络端冲突,不然会容易对宿主机产生影响
安装使用docker,且创建镜像等操作看以往文章,连接如下
https://www.jianshu.com/p/a75b4b6b8460
首先看下自己docker中的镜像文件
docker images
276B465C965068861231AB25D1DAC4AE.jpg
根据centos/redis image 创建两个容器 master slave 分别充当主从服务
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
确保主服务器的redismaster的配置是ok的
别忘了修改下conf 中
protected-mode no // yes=>no
bind 0.0.0.0 // 更改ip
开启后 先进入从服务器,在cli里设置一个值,且查看
8207D974D58549E245E57C6276A9AC26.jpg
开启主服务,且设置cli值
921EDEF0-10F3-4489-9D40-94E0E30FE092.png
重点来了 在从的cli中 输入SLAVEOF IP PORT 实现同步
2A3FB12802CADC6422BB17825F63CAE1.jpg可以看到 slave 中的数据发生改变,变成master中的数据,此时再在master中添加数据
发现slave中的数据一模一样
0C8766546933E71977712BA9C693524A.jpg
ok 完美
网友评论