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

MySQL partitioning practice through Navicat

MySQL partitioning is helpful for managing very l...

If I change a property randomly in Vue data, will the view be updated?

Interviewer: Have you read the source code of Vue...

Vue implements adding, displaying and deleting multiple images

This article shares the specific code for Vue to ...

Creating private members in JavaScript

Table of contents 1. Use closures 2. Use ES6 clas...

3 ways to add links to HTML select tags

The first one : Copy code The code is as follows: ...

The problem of form elements and prompt text not being aligned

Recent projects involve the creation of a lot of ...

Example of implementing GitHub's third-party authorization method in Vue

Table of contents Creating OAuth Apps Get the cod...

How to run tomcat source code in maven mode

Preface Recently, I was analyzing the startup pro...

MySQL data analysis storage engine example explanation

Table of contents 1. Introduce cases 2. View the ...

How to configure Nginx domain name rewriting and wildcard domain name resolution

This article introduces how to configure Nginx to...

MySQL multi-instance configuration application scenario

Table of contents MySQL multiple instances Multi-...

25 Examples of News-Style Website Design

bmi Voyager Pitchfork Ulster Grocer Chow True/Sla...