使用docker快速部署redis主从
首先从docker仓库拉取redis镜像, 可以通过docker pull redis直接拉取最新的镜像, 这里我指定了拉取5.0.7版本的镜像
[root@localhost ~]# docker pull redis:5.0.7
5.0.7: Pulling from library/redis
68ced04f60ab: Pull complete
7ecc253967df: Pull complete
765957bf98d4: Pull complete
52f16772e1ca: Pull complete
2e43ba99c3f3: Pull complete
d95576c71392: Pull complete
Digest: sha256:938ee5bfba605cc85f9f52ff95024e9a24cf5511ba6f1cbc68ec9d91a0432125
Status: Downloaded newer image for redis:5.0.7
docker.io/library/redis:5.0.7
创建两个redis实例分别为redis-master, redis-slave
[root@localhost ~]# docker run -itd -p 6379:6379 --name redis-master redis:5.0.7
dea3b3c2b16b0655db928bd4bcdf6a6a2021c7eb7f81e22b28570eb160fa0050
[root@localhost ~]# docker run -itd -p 6380:6379 --name redis-slave redis:5.0.7
3a6ac34cfe7218e3c016eea9c89331f8032491eb7200cab99f48d7a259abc810
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a6ac34cfe72 redis:5.0.7 "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 0.0.0.0:6380->6379/tcp redis-slave
dea3b3c2b16b redis:5.0.7 "docker-entrypoint.s…" 30 seconds ago Up 29 seconds 0.0.0.0:6379->6379/tcp redis-master
测试连接
通过命令docker exec进入容器内, 并打开redis-cli
[root@localhost ~]# docker exec -it redis-master bash
root@dea3b3c2b16b:/data# redis-cli
127.0.0.1:6379>
[root@localhost ~]# docker exec -it redis-slave bash
root@dea3b3c2b16b:/data# redis-cli
127.0.0.1:6379>
在从节点服务器使用SLAVEOF ip地址 端口进行绑定
绑定之后测试出了点小意外, 使用info replication查看信息
master_link_status:down, 先来看看端口是否开放
呵, 果然是端口没有开放, 那我们来把端口添加一下
再来使用info replication查看信息
这下好了, 我们再来进行测试
OK没问题, 不过这简单的redis主从已搭建完成。不过推荐大家可以创建数据卷将数据保存到数据卷中, 创建数据卷的命令是docker volume create 数据卷名, 用-v参数与redis容器进行绑定,。还有就是将redis.conf放在宿主机中映射到容器中,在创建容器时指定以映射的redis.conf来启动redis-server。