关于docker:docker-搭建redis主从复制

首先从dockerhub上搜寻redis
而后行将docker pull到本地 docker pull redis ,待同步完镜像后。
咱们须要对容器进行端口映射,以及文件映射,让redis读取本地的redis.conf文件。redis.conf问价能够去redis官网下载一份redis,而后提取。咱们 批改好redis.conf文件,并放到咱们映射的门路下,待容器启动就会加载。master节点批改bind,这个参数是用来绑定能够拜访该redis的ip地址。
slave节点也是批改这个,而后还要批改replicaof masterip port 参数,masterip 就是master节点的IP,port是他的端口。
而后就是运行docker镜像啦。
docker run -v ~/workspace/redis/master/config/redis.conf:/usr/local/etc/redis/redis.conf -v ~/workspace/redis/master:/data -p 6379:6379 --name master redis redis-server /usr/local/etc/redis/redis.conf 参数 -v是将后面的宿主机的地址映射到容器中的门路。 -p 是将主机端口映射到容器端口。
而后咱们批改容器映射到主机的端口。也就是-p。–name 是容器的名字。
咱们启动容器。

这是咱们的master节点。同样的,咱们批改启动容器的命令,启动另外两个redis节点。批改配置文件redis.conf 和 –name ,以及端口映射。
这样就好了。
然而我在搭建的时候遇到了如下的问题:

1:S 30 Oct 2020 00:24:28.379 * MASTER <-> REPLICA sync started
1:S 30 Oct 2020 00:24:28.380 * Non blocking connect for SYNC fired the event.
1:S 30 Oct 2020 00:24:28.380 * Master replied to PING, replication can continue...
1:S 30 Oct 2020 00:24:28.380 * Partial resynchronization not possible (no cached master)
1:S 30 Oct 2020 00:24:28.380 * Master is currently unable to PSYNC but should be in the future: -NOMASTERLINK Can't SYNC while not connected with my master

输出docker inspect master,查看容器的信息;

"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "d146143ce326a6d873f44293e255e1b77453747373ce9a11af450e74757bcce4",
                    "EndpointID": "46962fab58f136d8005a4c1e0773e24e0a2618a887f3248da4815a8f4722238e",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }

能够看到master的ip地址为172.17.0.2,我之前相当然的是本机地址(localhost),去批改配置。

这下就胜利了。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理