Docker 實現Redis單機集羣 1master+2slave+3sentinel

1、基本概念redis

一、鏡像docker

二、容器bash

三、倉庫設計

 

鏡像,是分層存儲的server

容器,和鏡像的關係,相似面向對象程序設計中的類和實例對象

倉庫,是用於管理鏡像,每一個倉庫能夠包含多個標籤(tag),每一個標籤對應一個鏡像ip

 

2、利用commit理解鏡像構成部署

 

 

 

3、基本命令:it

鏡像:ast

獲取鏡像: docker pull redis:latest

列出鏡像: docker image ls

列出包括中間層鏡像: docker image ls -a

列出部分鏡像: docker image ls redis:latest

過濾鏡像: docker image ls -f since=redis:latest

顯示虛懸鏡像: docker image ls -f dangling=true

刪除虛懸鏡像: docker image prune

刪除本地鏡像: docker image rm redis

用ls配合刪除鏡像: docker image rm $(docker image ls -q redis)

查看鏡像、容器、數據卷所佔用空間: docker system df

 

容器:

列出全部容器: docker container ls -a

運行容器: docker run redis

運行容器並啓動bash終端: docker run -t -i redis /bin/bash

後臺運行容器: docker run -d redis /bin/sh -c "while true; do echo hello world; sleep 1; done"

啓動中止的容器: docker container start [Continer flag]

終止容器: docker container stop [Continer flag]

清除全部終止容器: docker container prune

刪除容器: docker container rm  [Continer flag]

獲取容器輸出信息: docker container logs [Continer flag]

進入容器: docker attach [Continer flag]

進入容器(推薦使用): docker exec -it  [Continer flag] bash

(PS:使用 attach 從 stdin 中 exit ,會致使容器中止,使用 exec 則不會)

導出容器: docker export  [Continer flag] redis.tar

導入容器快照: cat redis.tar | docker import - test/redis:v1.0

 

查看鏡像的ip地址: docker inspect  [Continer flag] |grep -i add

 

 

Redis集羣:

一、部署Redis集羣:

redis-master:

docker run -it -p 16379:6379 -v /home/docker/redis/redis-master.conf:/usr/local/etc/redis/redis.conf --name redis-master redis:latest /bin/bash

redis-slave:

docker run -it -p 26371:6379 -v /home/docker/redis/redis-slave1.conf:/usr/local/etc/redis/redis.conf --name redis-slave1 --link redis-master:master redis:latest /bin/bash

docker run -it -p 26372:6379 -v /home/docker/redis/redis-slave2.conf://usr/local/etc/redis/redis.conf --name redis-slave2 --link redis-master:master redis:latest /bin/bash

 

進入容器,啓動redis: redis-server /usr/local/etc/redis/redis.conf

 

二、部署Redis哨兵模式,添加下面3個哨兵容器:

sentinel:

docker run -it -p 36371:36379 -v /home/docker/sentinel/redis-sentinel1.conf:/usr/local/etc/redis/redis.conf --name redis-sentinel1 --link redis-master:master redis:latest /bin/bash

docker run -it -p 36372:36379 -v /home/docker/sentinel/redis-sentinel2.conf:/usr/local/etc/redis/redis.conf --name redis-sentinel2 --link redis-master:master redis:latest /bin/bash

docker run -it -p 36373:36379 -v /home/docker/sentinel/redis-sentinel3.conf:/usr/local/etc/redis/redis.conf --name redis-sentinel3 --link redis-master:master redis:latest /bin/bash

 

進入容器,啓動哨兵:redis-sentinel /usr/local/etc/redis/redis.conf

 

經過redis-cli 鏈接redis

相關文章
相關標籤/搜索