主机的创建(阿里云服务器)
- 创建阿里云服务器(请参考官方文档)
阿里云教程:服务器创建及Docker的基本使用 - 安装Docker
Linux下安装Docker:参考官方文档(Install Docker Engine | Docker Documentation)根据自己的子系统进行安装。 - 运行Docker指令
redis-master:
image: redis:latest
# restart: always
ports:
- "6379:6379"
volumes:
- /myconfig/redis-master/redis.conf:/etc/redis/redis.conf
- /myconfig/redis-master/data:/data
- /myconfig/lib:/myconfig/lib
command: [ "redis-server", "/etc/redis/redis.conf", "--appendonly", "yes","--requirepass ","myredis123" ]
container_name: redis-master-service
- redis-master::定义了一个服务名,这个名称可以用来在其他服务中引用这个服务的容器。
- image: redis:latest:指定了要使用的 Redis 镜像名称及版本。这里使用的是最新的 Redis 镜像。
- ports::指定了将容器内的端口映射到主机上的端口。这里将 Redis 默认的 6379 端口映射到主机上的 6379 端口。
- volumes::指定了要挂载到容器内的卷(volume)。这里挂载了三个卷,分别是 Redis 的配置文件、数据文件以及一个自定义的 lib 目录(lib中为Redis的模块,如RedisJSON等,不需要的话可以不挂载)。
- command::指定了容器启动时要执行的命令。这里启动了 Redis 服务器,并指定了配置文件路径、开启持久化存储、以及设置 Redis 的密码为 myredis123。
- container_name::指定了容器的名称,这个名称可以用来直接引用容器,而不是使用自动生成的名称。
从机的创建(本地VM虚拟机)
- 创建虚拟机
创建一个Linux虚拟机,选用centos系统或Ubuntu系统 - 安装Docker
Linux下安装Docker:参考官方文档根据自己的子系统进行安装。
将主机的相关挂载卷从云服务器复制下来保存本地(两份)
修改文件内容
REPLICAOF 为主机的IP地址 6379 为主机Redis服务端口
masterauth 为主机数据库的密码
3. 运行Docker命令
从机1:
docker run -d
--name redis-slave-1-service
-p 6380:6379
-v /myconfig/redis-slave1/redis.conf:/etc/redis/redis.conf -v /myconfig/redis-slave1/data:/data
-v /myconfig/lib:/myconfig/lib
redis:latest redis-server /etc/redis/redis.conf
--slaveof *.*.*.* 6379
--appendonly yes
--requirepass myredis123
从机二:
docker run -d
--name redis-slave-2-service
-p 6381:6379
-v /myconfig/redis-slave2/redis.conf:/etc/redis/redis.conf -v /myconfig/redis-slave2/data:/data
-v /myconfig/lib:/myconfig/lib
redis:latest redis-server /etc/redis/redis.conf
--slaveof *.*.*.* 6379
--appendonly yes
--requirepass myredis123
- -d:以后台模式启动容器。
- –name redis-slave-1-service:指定容器的名称。
- -p 6380:6379:将容器内的 6379 端口映射到主机上的 6380 端口。
- -v /myconfig/redis-slave1/redis.conf:/etc/redis/redis.conf:将 Redis 的配置文件挂载到容器内的 /etc/redis/redis.conf 路径。
- -v /myconfig/redis-slave1/data:/data:将 Redis 的数据目录挂载到容器内的 /data 路径。
- -v /myconfig/lib:/myconfig/lib:将自定义的 lib 目录挂载到容器内的 /myconfig/lib 路径。
- redis:latest:指定要使用的 Redis 镜像。
- redis-server /etc/redis/redis.conf:启动 Redis 服务器,并指定配置文件路径。
- –slaveof ... 6379:将这个 Redis 从节点设置为连接主节点的 IP 地址为 ...,端口为 6379。
- –appendonly yes:开启 Redis 的 AOF 持久化功能。
- –requirepass myredis123:设置 Redis 的密码为 myredis123。
最终效果
主机:
从机: