CentOS 6 uses Docker to deploy redis master-slave database operation example

CentOS 6 uses Docker to deploy redis master-slave database operation example

This article describes how to use docker to deploy redis master-slave database operations on centos6. Share with you for your reference, the details are as follows:

Directory structure:

/redis

/Dockerfile

/Readme

/redis-3.2.8.tar.gz

./start.sh

Dockerfile:

FROM centos
MAINTAINER qiongtao.li [email protected]
ADD ./redis-3.2.8.tar.gz /opt
ADD ./start.sh /opt/start_redis.sh
RUN echo "Asia/shanghai" > /etc/timezone \
 && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
 && yum -y install gcc make \
 && ln -s /opt/redis-3.2.8 /opt/redis \
 && cd /opt/redis && make && make install
EXPOSE 6379
ENTRYPOINT ["sh", "/opt/start_redis.sh"]

start.sh

role=$1
port=6379
password=Abc123
redis_conf=/opt/redis/redis.conf
dir=/data/redis
logfile=/data/redis/redis.log
mkdir -p $dir
sed -i "s|bind 127.0.0.1|bind 0.0.0.0|g" $redis_conf
sed -i "s|# requirepass foobared|requirepass ${password}|g" $redis_conf
sed -i "s|dir ./|dir ${dir}|g" $redis_conf
sed -i "s|logfile \"\"|logfile ${logfile}|g" $redis_conf
if [ "$role" == "slave" ]; then
 echo "slave"
 sed -i "s|# slaveof <masterip> <masterport>|slaveof redis-master ${port}|g" $redis_conf
 sed -i "s|# masterauth <master-password>|masterauth ${password}|g" $redis_conf
else
 echo "master"
fi
redis-server $redis_conf

Readme

docker rm -f redis-master redis-slave-1 redis-slave-2
docker rmi -f redis
docker build -t redis .
docker run -d --name redis-master redis
docker run -d --name redis-slave-1 --link redis-master:redis-master redis slave
docker run -d --name redis-slave-2 --link redis-master:redis-master redis slave
docker ps -a
docker exec redis-master redis-cli -a Abc123 set name hnatao
docker exec redis-master redis-cli -a Abc123 get name
docker exec redis-slave-1 redis-cli -a Abc123 get name
docker exec redis-slave-2 redis-cli -a Abc123 get name
docker exec redis-master grep -E "bind|dir|require|logfile|slaveof|masterauth" /opt/redis/redis.conf
docker exec redis-slave-1 grep -E "bind|dir|require|logfile|slaveof|masterauth" /opt/redis/redis.conf
docker exec redis-slave-2 grep -E "bind|dir|require|logfile|slaveof|masterauth" /opt/redis/redis.conf
docker exec redis-master redis-cli -a Abc123 info
docker exec redis-slave-1 redis-cli -a Abc123 info
docker exec redis-slave-2 redis-cli -a Abc123 info

Test the installation and deployment

cat Readme|while read line; do $line; done

I hope this article will help you use Docker containers.

You may also be interested in:
  • Implementation of Redis master-slave cluster based on Docker
  • Detailed explanation of Redis master-slave replication practice using Docker
  • How to use docker to build redis master-slave
  • Use Docker to build a Redis master-slave replication cluster
  • Detailed explanation of the master-slave configuration tutorial of redis under Docker
  • Example practice of building Redis master-slave + sentinel based on Docker

<<:  Detailed explanation of Vue's monitoring method case

>>:  Detailed explanation of Vue's methods and properties

Recommend

Instructions for using MySQL isolation Read View

Which historical version can the current transact...

Detailed explanation of using scp command to copy files remotely in Linux

Preface scp is the abbreviation of secure copy. s...

React and Redux array processing explanation

This article will introduce some commonly used ar...

Implementation example of video player based on Vue

When the existing video player cannot meet the ne...

Implementation of react loop data (list)

First, let's simulate the data coming from th...

Zabbix redis automatic port discovery script returns json format

When we perform automatic discovery, there is alw...

MYSQL unlock and lock table introduction

MySQL Lock Overview Compared with other databases...

MySQL Series 10 MySQL Transaction Isolation to Implement Concurrency Control

Table of contents 1. Concurrent access control 2....

Explain TypeScript enumeration types in detail

Table of contents 1. Digital Enumeration 2. Strin...

CSS3 to achieve dynamic background gradient effect

Learning CSS3 is more about getting familiar with...

Linux general java program startup script code example

Although the frequency of starting the shell is v...

Detailed tutorial on installing CUDA9.0 on Ubuntu16.04

Preface: This article is based on the experience ...