Docker 实现Redis单机集群 1master+2slave+3sentinel

本文详细介绍了Docker的基本概念及常用命令操作,并通过部署Redis集群和哨兵模式的实例,展示了如何利用Docker进行实际应用的搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本概念

1、镜像

2、容器

3、仓库

 

镜像,是分层存储的

容器,和镜像的关系,类似面向对象程序设计中的类和实例

仓库,是用于管理镜像,每个仓库可以包含多个标签(tag),每个标签对应一个镜像

 

二、利用commit理解镜像构成

 

 

 

三、基本命令:

镜像:

获取镜像: 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集群:

1、部署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

 

2、部署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

转载于:https://my.oschina.net/u/554333/blog/1631164

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值