【Docker】部署Redis的主从复制

星图妙赏 2019-09-07 23:25:37

序言

点击图像可以查阅更多编程方面的文章。

1.  配置镜像

1. 这里是手写的一份redis镜像,里边参数先不用管,先知道这么用即可

2. 把这份镜像文件上传到/usr/redis这个目录下

usr下面的redis这个目录是需要创建的

2. 容器网络类型

Docker安装后,默认会创建下面三种网络类型

docker network ls查看

在启动容器时使用   --network bridge 指定网络类型

bridge:桥接网络,docker启动时默认使用的网络类型

none:无指定网络,使用 --network=none ,docker 容器就不会分配局域网的IP

host: 主机网络,使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。

例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中

3. 指定自定义网络

因为默认的网络不能制定固定的地址,所以我们将创建自定义网络,并指定网段:172.10.0.01/16

docker network create --subnet=172.10.0.0/16 mynetwork

删除自定义网络

docker network rm mynetwork即可

如果命令记不住那么就直接使用docker network help

4. 创建镜像

查看自己的镜像

docker images

2. 创建redis-master

docker build -t redis-master  .

创建完之后可以使用docker images来查看生成的镜像,这是刚刚生成的redis主从两个镜像

5. 创建容器

命令:

docker run -itd --name  redis-master  --net mynetwork  -p 6380:6379  --ip 172.10.0.2  redis

1. 在打开两个终端,分别执行创建容器命令

2. 分别创建redis-master容器和redis-slave

3. 查看我们创建的容器

docker ps -a  或者 docker container ls

6. 配置主从集群

进入到redis的主从两个容器里边去

docker exec -it 97e4f5974e91 /bin/bash

它就相当于一个伪终端

2. 容器重启

docker container start containerID

3. 在cd到etc下,发现并没有redis.conf文件

4. 映射宿主机的redis.conf到容器里

这里切记需要把之前创建的容器干掉docker container stop redis-master/docker container rm redis-master,然后在重新创建就会存在redis.conf文件了

docker run -itd  --name  redis-master  -v /usr/local/redis/redis.conf:/etc/redis.conf -v /root/usr/local/redis/data:/data  --net mynetwork  -p 6380:6379  --ip 172.10.0.2  redis

5. 修改主动redis的配置文件

在redis-slave里边配置

然后修该主从两个的配置,这里没有设置密码,所以就先这么弄

6. 测试主从复制

可以看到都是没有值的

下来给redis-master设置一个值

然后在redis-slave获取

这样就配置完成了

2 阅读:585
评论列表