docker安装redis及集群部署

1.docker获取redis镜像

sudo docker pull redis

docker安装redis及集群部署_第1张图片
2.查看redis镜像

 docker images

在这里插入图片描述
3.配置redis.config文件
官网下载redis 解压获取配置文件 copy一份进行修改
docker安装redis及集群部署_第2张图片
修改以下配置

bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
daemonize no#用守护线程的方式启动
requirepass 你的密码#给redis设置密码
appendonly yes#redis持久化  默认是no
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300

mkdir /data/redis
mkdir /data/redis/data
上传文件到 /data/redis/ 注:我的临时文件存放处
4.启动redis

docker run -p 6379:6379 --name redis -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf 

//如果不是最新版本,也可以指定启动的镜像版本 redis:6.0.16 注: redis.conf从对应版本获取

 docker run -p 6379:6379 --name redis -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d redis:6.0.16 redis-server /etc/redis/redis.conf

在这里插入图片描述
参数解释:

-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /data/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:指定配置文件启动redis
--appendonly yes:redis启动后数据持久化

5.查看启动是否成功

 docker ps

在这里插入图片描述
6.常用命令

service docker start 		#启动docker
systemctl start docker		 #启动docker
systemctl enable docker		 #开机启动docker
systemctl restart docker		 #重新启动docker
service docker stop			 #停止docker
systemctl stop docker 	#停止docker
docker ps    					#查看正在运行的所有容器
docker images 				#查看所有镜像
docker exec -it redis /bin/bash #进入redis 容器
ctrl+D 								#退出当前容器
exit									#退出当前容器
docker start redis 			#启动redis容器
docker stop redis 			#停止redis容器
docker rm redis 				#删除redis容器
docker rmi						 #删除镜像

7. redis集群
7.1创建配置文件 6个 放到/data/redis/conf下

redis-7001.conf、redis-7002.conf、redis-7003.conf、redis-7004.conf、redis-7005.conf、redis-7006.conf


(1)# bind 127.0.0.1 -::1  注释掉,不注释只能本机访问
 
(2)port 7001  根据文件后缀端口修改,如果docker网络采用桥接方式,此处也可以都使用默认的6379端口,每个docker容器的网络都是独立的
 
(3)daemonize no ,此处必须设置成no,不然docker容器一启动就停掉。设置成yes,redis进程就以守护进程运行,docker容器检测到没有前台进程,所以容器直接停掉
 
(4)pidfile "/var/run/redis_7001.pid"   根据端口号修改
 
(5)logfile "/data/redis7001.log" 此处将log文件存放的路径设置到容器的/data路口,刚开始设置了一个其他路径,容器启动的时候提示权限不够
 
(6)dbfilename "dump7001.rdb"  rdb数据文件的名称,按照端口号修改
 
(7)dir "/data"   数据文件存放的路径
 
(8)requirepass "123456"  redis的密码,根据实际情况进行设置
 
(9)appendonly yes 是否开启aof持久化配置,根据实际情况配置
 
(10)appendfilename "appendonly7001.aof"   aof文件的名称
 
(11)appendfsync everysec  aof持久化策略 ,always 、no  
 
(12)cluster-enabled yes  开启集群模式,设置成yes
 
(13)cluster-config-file /data/nodes-7001.conf  集群配置文件存放位置
 
(14)cluster-node-timeout 15000  节点通信超时时间
(15)masterauth 123456 从机设置访问主机密码
(16)protected-mode no

7.2启动docker容器
/data/redis/data/下创建 7001、7002、7003、7004、7005、7006文件夹存放持久化文件、日志文件

docker run -it -d -p 7001:7001 -p 17001:17001 -v /data/redis/conf:/etc/redis -v /data/redis/data/7001:/data --network=host --name redis-7001 redis:6.0.16 redis-server /etc/redis/redis-7001.conf
docker run -it -d -p 7002:7002 -p 17002:17002 -v /data/redis/conf:/etc/redis -v /data/redis/data/7002:/data --network=host --name redis-7002 redis:6.0.16 redis-server /etc/redis/redis-7002.conf
docker run -it -d -p 7003:7003 -p 17003:17003 -v /data/redis/conf:/etc/redis -v /data/redis/data/7003:/data --network=host --name redis-7003 redis:6.0.16 redis-server /etc/redis/redis-7003.conf
docker run -it -d -p 7004:7004 -p 17004:17004 -v /data/redis/conf:/etc/redis -v /data/redis/data/7004:/data --network=host --name redis-7004 redis:6.0.16 redis-server /etc/redis/redis-7004.conf
docker run -it -d -p 7005:7005 -p 17005:17005 -v /data/redis/conf:/etc/redis -v /data/redis/data/7005:/data --network=host --name redis-7005 redis:6.0.16 redis-server /etc/redis/redis-7005.conf
docker run -it -d -p 7006:7006 -p 17006:17006 -v /data/redis/conf:/etc/redis -v /data/redis/data/7006:/data --network=host --name redis-7006 redis:6.0.16 redis-server /etc/redis/redis-7006.conf

7.3构建集群关系

#进入任意redis
docker exec -it redis-7001  /bin/bash
#构建集群我的redis密码 123456
redis-cli --cluster create 192.168.2.201:7001 192.168.2.201:7002 192.168.2.201:7003 192.168.2.201:7004 192.168.2.201:7005 192.168.2.201:7006 --cluster-replicas 1 -a 123456

docker安装redis及集群部署_第3张图片

#进入看客户端测试set 值看是否切换到其他redis服务器
 redis-cli -c -h 127.0.0.1 -p 7001 -a 123456

docker安装redis及集群部署_第4张图片

你可能感兴趣的:(linux,linux,docker,redis)