写在前面 !!! 这篇文章只能一次适用 容器重启就需要重新配置命令
请移步第二篇文章
网上翻阅一些文章,发现怎么搭建的都有,自己测试了一遍记录下自己搭建的流程吧,发现去操作redis.conf文件是很苦恼的事情,这篇文章不会进行操作!
1、首先把自己的虚拟机搭建好docker环境
2、拉去redis镜像 我这边就不指定版本号了 直接拉取最新的了
docker pull redis
3、正常情况是直接创建容器运行即可、但是docker容器中没有redis.conf的文件、就先做个数据卷进行映射,后面就只创建一个主redis和从redis所以我就创建两个文件夹了
在本地创建文件
/home/kinghh/data/redis 和 /home/kinghh/data/redis_2
然后在这个两个文件中都执行命令 拉取redis.conf文件
wget http://download.redis.io/redis-stable/redis.conf
4 、创建一个mynetwork网络 并指定网段(子网)为:173.10.0.0/10 (随意)
docker network create --subnet=173.10.0.0/10 mynetwork
查看所有的网络
docker network ls
5、现在docker镜像准备好了,配置文件的位置创建好了,子网也创建好了就可以启动容器了!
创建主redis
docker run -itd --name=redis -v/home/kinghh/data/redis:/usr/local/etc/redis -p7001:6379 --net mynetwork --ip 173.10.0.2 redis
创建从redis
docker run -itd --name=redis_2 -v/home/kinghh/data/redis_2:/usr/local/etc/redis -p7002:6379 --net mynetwork --ip 173.10.0.3 redis
参数解释:
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d: 后台运行容器,并返回容器ID;
–name: 为创建的容器命名
–net: 指定网络模式(这里指定刚才创建的自定义网络模式)
-p: 端口映射,格式为:主机(宿主)端口:容器端口
–ip: 为容器制定一个固定的ip
-v:Linux文件和容器内部文件映射
redis 镜像名称
运行成功后使用docker ps 查看正在运行中的容器
使用docker network inspect mynetwork命令查看容器的ip地址等相关信息
6、然后就是最后一步了 进入redis_2 的内部配置 执行一条命令 SLAVEOF 173.10.0.2 6379
# 先进入容器内部
docker exec -it redis_2 bash
#进入redis中
redis-cli
#执行主从配置
SLAVEOF 173.10.0.2 6379
现在是已经配置完成了 就可以进行验证了
我的验证办法是 进入主redis的内部执行命令进行查看
新开窗口或者执行exit退出(不演示了)
# 先进入容器内部
docker exec -it redis bash
#进入redis中
redis-cli
#执行命令查看
info replication
大功告成!