构建Redis的基础镜像,然后基于这个基础镜像构建主Redis镜像和从Redis镜像。
1、构建Redis基础镜像
- 创建redis基础镜像目录
[root@localhost mnt]# mkdir redis_base
[root@localhost mnt]# cd redis_base/
- 创建Dockerfile
# vi Dockerfile
FROM centos:latest MAINTAINER djl RUN yum -y install wget RUN yum -y groupinstall "Development Tools" "Server Platform Development" RUN wget http://download.redis.io/releases/redis-5.0.3.tar.gz RUN tar xf redis-5.0.3.tar.gz RUN rm -rf redis-5.0.3.tar.gz RUN cd redis-5.0.3/;make install RUN sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /redis-5.0.3/redis.conf RUN sed -i "s/protected-mode yes/protected-mode no /g" /redis-5.0.3/redis.conf VOLUME [ "/var/lib/redis","/var/log/redis/" ] EXPOSE 6379
构建Redis基础镜像
# docker build -t djl/redis .
Successfully built 2125f0a93781
Successfully tagged djl/redis:latest
查看镜像
# docker images
[root@localhost redis_base]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE djl/redis latest 2125f0a93781 8 minutes ago 787MB centos latest 9f38484d220f 10 days ago 202MB
基于Redis基础镜像构建Redis主镜像
- 创建redis主镜像目录
[root@localhost mnt]# mkdir redis_primary [root@localhost mnt]# cd redis_primary/ [root@localhost redis_primary]#
- 创建Dockerfile
# vi Dockerfile
FROM test/redis FROM djl/redis ENTRYPOINT [ "redis-server","--protected-mode no","--logfile /var/log/redis/redis-server.log" ]
# docker build -t djl/redis_primary .
[root@localhost redis_primary]# docker build -t djl/redis_primary . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM djl/redis ---> 2125f0a93781 Step 2/2 : ENTRYPOINT [ "redis-server","--protected-mode no","--logfile /var/log/redis/redis-server.log" ] ---> Running in ccb2ba2280c3 Removing intermediate container ccb2ba2280c3 ---> 9ccd42433073 Successfully built 9ccd42433073 Successfully tagged djl/redis_primary:latest
验证
# docker images
[root@localhost redis_primary]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE djl/redis_primary latest 9ccd42433073 About a minute ago 787MB djl/redis latest 2125f0a93781 17 minutes ago 787MB centos latest 9f38484d220f 10 days ago 202MB
基于Redis基础镜像构建Redis从镜像
- 创建redis从镜像目录
[root@localhost mnt]# mkdir redis_replica
[root@localhost mnt]#
[root@localhost mnt]# cd redis_replica
[root@localhost redis_replica]#
- 创建Dockerfile
# vi Dockerfile
FROM test/redis FROM djl/redis ENTRYPOINT [ "redis-server","--protected-mode no","--logfile /var/log/redis/redis-replica.log","--slaveof redis_primary 6379" ]
# docker build -t djl/redis_replica .
[root@localhost redis_replica]# docker build -t djl/redis_replica . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM djl/redis ---> 2125f0a93781 Step 2/2 : ENTRYPOINT [ "redis-server","--protected-mode no","--logfile /var/log/redis/redis-replica.log","--slaveof redis_primary 6379" ] ---> Running in 46ebcda105ec Removing intermediate container 46ebcda105ec ---> 3f0451b6f5ce Successfully built 3f0451b6f5ce Successfully tagged djl/redis_replica:latest
验证
[root@localhost redis_replica]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE djl/redis_replica latest 3f0451b6f5ce 32 seconds ago 787MB djl/redis_primary latest 9ccd42433073 6 minutes ago 787MB djl/redis latest 2125f0a93781 23 minutes ago 787MB centos latest 9f38484d220f 10 days ago 202MB
end