本文实例讲述了centos6使用docker部署redis主从数据库操作。分享给大家供大家参考,具体如下:
目录结构:
/redis
/Dockerfile
/Readme
/redis-3.2.8.tar.gz
/start.sh
Dockerfile:
1
2
3
4
5
6
7
8
9
10
11
|
FROM centos MAINTAINER qiongtao.li hnatao@126.com 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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 |
测试安装部署
1
|
cat Readme| while read line; do $line; done |
希望本文所述对大家Docker容器使用有所帮助。
原文链接:https://my.oschina.net/qiongtaoli/blog/898678