一、素材准备
将准备好的素材上传至服务器指定目录下【文章末尾提供素材下载】
二、使用dockerfile构建镜像
- 创建网络
docker network create --subnet=192.169.1.0/24 redisnetwork
#查看docker网络
#docker network ls
# 删除docker 网络
# docker network rm redisnetwork
- 构建镜像
利用素材文件中的 dockerfile
构建 redis
镜像
Dockerfile
文件内容如下
FROM alpine:3.11
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add gcc g++ libc-dev wget vim openssl-dev make linux-headers \
&& rm -rf /var/cache/apk/*
COPY ./redis-5.0.7.tar.gz redis-5.0.7.tar.gz
#创建相关目录能够看到日志信息跟数据跟配置文件
RUN mkdir -p /usr/src/redis \
&& mkdir -p /redis/data \
&& mkdir -p /redis/conf \
&& mkdir -p /redis/log \
&& mkdir -p /var/log/redis \
&& tar -zxvf redis-5.0.7.tar.gz -C /usr/src/redis \
&& rm -rf redis-5.0.7.tar.gz \
&& cd /usr/src/redis/redis-5.0.7 && make \
&& cd /usr/src/redis/redis-5.0.7 && make install;
EXPOSE 6379
构建镜像
docker build -t royeecai/redis5:v1 .
- 创建容器
# 创建主redis
docker run -itd \
-v /root/redis_source/masterandslave/master:/redis \
-p 6350:6379 \
--network=redisnetwork \
--ip=192.169.1.11 \
--name redis5master royeecai/redis5:v1
# 创建从redis
docker run -itd \
-v /root/redis_source/masterandslave/slave:/redis \
-p 6340:6379 \
--network=redisnetwork \
--ip=192.169.1.12 \
--name redis5slave royeecai/redis5:v1
- 配置主从
进入容器启动redis主服务
# 进入主容器并启动redis服务
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5master sh
#在容器中执行如下命令启动redis服务
redis-server /redis/conf/redis.conf
另起一个终端进入从容器启动redis主服务
# 进入从容器并启动redis服务
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5slave sh
#在容器中执行如下命令启动redis服务
redis-server /redis/conf/redis.conf
另起一终端进入从服务器
# 进入从容器
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5slave sh
# 启动redis客户端
/ # redis-cli
# 指定主服务器
127.0.0.1:6379> SLAVEOF 192.169.1.11 6379
OK
# 从服务器无法写数据
127.0.0.1:6379> set name royeecai
(error) READONLY You can't write against a read only replica.
另起一终端进入主服务器
# 进入主容器
[root@yzj5502019109537-1222139 ~]# docker exec -it redis5master sh
# 启动redis客户端
/ # redis-cli
#设置name=royeecai 主服务器负责写业务
127.0.0.1:6379> set name royeecai
OK
127.0.0.1:6379> get name
"royeecai"
127.0.0.1:6379>
END
关注公众号 扣丁曼 回复
redis01
获取本次项目素材。