首先从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 started1: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),去批改配置。

这下就胜利了。