经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
使用docker搭建redis主从的方法步骤
来源:jb51  时间:2021/1/11 10:05:04  对本文有异议

 一、构建 Docker 环境

1、创建 dockerfile

  1. FROM centos:latest
  2. RUN groupadd -r redis && useradd -r -g redis redis
  3. RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools
  4. EXPOSE 6379

2、构建镜像

  1. docker build -t docker-test .

3、查看当前镜像

  1. docker iamges
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. docker-test latest ccebd30e466a 12 minutes ago 396MB
  4. centos latest 470671670cac 7 weeks ago 237MB

4、查看docker默认的网络类型

  1. docker network ls
  2. NETWORK ID NAME DRIVER SCOPE
  3. a43e79987e98 bridge bridge local
  4. 6b73067403dc host host local
  5. b8ad4981e57e none null local

5、创建自定义网络类型

  1. docker network create --subnet=172.10.0.0/16 haveyb-network

二、搭建 Redis 主从

1、创建 redis-master 容器

  1. docker run -itd --name redis-master --net haveyb-network -p 6380:6379 --ip 172.10.0.2 docker-test
  2.  

参数解释:

-i: 以交互模式运行容器,通常与 -t 同时使用

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d: 后台运行容器,并返回容器ID;

--name: 为创建的容器命名

--net: 指定网络模式(这里指定刚才创建的自定义网络模式)

-p: 端口映射,格式为:主机(宿主)端口:容器端口

--ip: 为容器制定一个固定的ip

后面再指定一下使用的镜像(这里使用的就是刚才创建的镜像 docker-test)

2、查看运行中的容器

  1. docker ps -a
  1. CONTAINER ID IMAGE COMMAND CREATED
  2. dc9344bbd25f docker-test "/bin/bash" 2 minutes ago
  3. STATUS PORTS NAMES
  4. Up 2 minutes 0.0.0.0:6380->6379/tcp redis-master

注:查看某个网络下容器的ip地址

  1. docker network inspect haveyb-network

3、创建 redis-slave1、redis-slave2 容器

  1. docker run -itd --name redis-slave1 --net haveyb-network -p 6381:6379 --ip 172.10.0.3 docker-test
  2. docker run -itd --name redis-slave2 --net haveyb-network -p 6382:6379 --ip 172.10.0.4 docker-test

4、配置 redis-master 容器

(1)进入redis-master 容器

  1. docker exec -it redis-master bash

注:退出容器 `exit`

(2)修改redis.conf 配置文件

  1. vi /etc/redis.conf

(3)修改参数 bind 127.0.0.1 为 0.0.0.0

  1. bind 0.0.0.0

(4)设置主redis 密码

  1. requirepass YourPasswordSettings

(5)启动主redis

  1. redis-server /etc/redis.conf &

(6)redis-cli

  1. redis-cli
  2. auth yourPasswordSettings

5、配置 redis-slave1

(1)进入redis-slave1 容器

  1. docker exec -it redis-slave1 bash

(2)修改redis.conf 配置文件

  1. vi /etc/redis.conf

(3)修改参数 bind 127.0.0.1 为 0.0.0.0

  1. bind 0.0.0.0

(4)设置 masterauth,添加以下代码(主redis设置密码后,从redis连接需要此参数验权)

  1. masterauth yourPasswordSettings

(5)设置 slaveof (设置主 redis 的 ip 和 port)

  1. slaveof 172.10.0.2 6379

(5)启动从redis

  1. redis-server /etc/redis.conf &

(6)redis 客户端

  1. redis-cli

 6、配置 redis-slave2

同配置 redis-slave1

7、在redis -cli中执行 `info replication` 可以查看主从信息

 redis-master

  1. 127.0.0.1:6379> info replication
  2. # Replication
  3. role:master
  4. connected_slaves:2
  5. slave0:ip=172.10.0.3,port=6379,state=online,offset=3105,lag=1
  6. slave1:ip=172.10.0.4,port=6379,state=online,offset=3105,lag=1
  7. master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
  8. master_replid2:0000000000000000000000000000000000000000
  9. master_repl_offset:3105
  10. second_repl_offset:-1
  11. repl_backlog_active:1
  12. repl_backlog_size:1048576
  13. repl_backlog_first_byte_offset:1
  14. repl_backlog_histlen:3105
  15. 127.0.0.1:6379>

redis-slave1

  1. 127.0.0.1:6379> info replication
  2. # Replication
  3. role:slave
  4. master_host:172.10.0.2
  5. master_port:6379
  6. master_link_status:up
  7. master_last_io_seconds_ago:1
  8. master_sync_in_progress:0
  9. slave_repl_offset:3203
  10. slave_priority:100
  11. slave_read_only:1
  12. connected_slaves:0
  13. master_replid:a3a43b1957bc5b9f18cb3004301990085e49b0d1
  14. master_replid2:0000000000000000000000000000000000000000
  15. master_repl_offset:3203
  16. second_repl_offset:-1
  17. repl_backlog_active:1
  18. repl_backlog_size:1048576
  19. repl_backlog_first_byte_offset:1
  20. repl_backlog_histlen:3203
  21. 127.0.0.1:6379>

8、在 redis-master 中写入key,redis-slave1 和 redis-slave2 已经可以获取了

到此这篇关于使用docker搭建redis主从的方法步骤的文章就介绍到这了,更多相关docker搭建redis主从内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号