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

Website front-end performance optimization: JavaScript and CSS

I have read an article written by the Yahoo team ...

Vue custom v-has instruction to implement button permission judgment

Application Scenario Taking the background manage...

Horizontal header menu implemented with CSS3

Result:Implementation Code html <nav class=&qu...

Comprehensive understanding of html.css overflow

Comprehensive understanding of html.css overflow ...

Using Docker Enterprise Edition to build your own private registry server

Docker is really cool, especially because it'...

How to draw special graphics in CSS

1. Triangle Border settings Code: width: 300px; h...

Pure HTML+CSS to achieve typing effect

This article mainly introduces the typing effect ...

How to find identical files in Linux

As the computer is used, a lot of garbage will be...

How to implement two-way binding function in vue.js with pure JS

Table of contents First, let's talk about the...

Example of how to create and run multiple MySQL containers in Docker

1. Use the mysql/mysql-server:latest image to qui...

Detailed explanation of how to create an array in JavaScript

Table of contents Creating Arrays in JavaScript U...

Detailed explanation of nginx reverse proxy webSocket configuration

Recently, I used the webSocket protocol when work...