当前位置: 首页 > news >正文

Docker05-Redis启动

Docker05-Redis启动

【Docker运行Redis】+【使用本地config】+【挂载本地Data】

文章目录

  • Docker05-Redis启动
  • 1-Redis安装整理
  • 2-参考网址
  • 3-Redis运行后验证
  • 4-Docker运行Redis
    • 场景 1:只想快速跑一个 Redis 容器(无配置、无持久化)
    • 场景 2:容器跑 Redis,但**使用本地自定义配置**(不挂载数据目录)
    • 场景 3:既要**本地配置**又要**持久化数据到本地**(生产/开发推荐)
    • 附录:最小可用 redis.conf 示例(仅 4 行)
    • 使用小结


1-Redis安装整理

  • 1-Docker创建conf和data文件夹->mac需要把上级目录共享出来
# linux
docker run --name my-redis -p 6379:6379 -d redis:latest
docker run --name my-redis -p 6379:6379 -v /path/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:latest
docker run --name my-redis -p 6379:6379 -v /path/conf/redis.conf:/usr/local/etc/redis/redis.conf -d -v /path/data:/data redis:latest# windows可以git下载配置后(不要执行shell脚本,直接手动执行)
docker run --name redis-config-6379 -p 6379:6379 -v D://TT_ENZO+//02-Docker文件//2025Docker-Gitee//docker_redis//conf//redis.conf:/usr/local/etc/redis/redis.conf -d redis:latest
  • 2-Docker运行Redis->先无脑把redis运行起来->快速验证,快速失败!
  • 3-Docker挂载本地config->解决【外网不能访问(IP限制)】+【安装时设定默认密码】问题
  • 4-Docker挂在本地data->这个本地data文件夹,挂载到其他的docker镜像后还可以直接运行->【强(懒)的可怕】
  • 5-DockerCompose如何配置哨兵模式->先了解什么是【主备】+【哨兵】+【集群】->不同的部署方案分别解决什么问题
  • 6-Docker运行Redis后如何无工具验证->redis-cli命令

2-参考网址

  • 【生产推荐】gitee系列docker服务部署-Redis高可用:https://gitee.com/enzoism/docker/tree/master/redis
  • 【开发推荐】gitee-Redis简单部署:https://gitee.com/enzoism/docker_redis
  • Docker 部署 Redis :https://blog.csdn.net/qq_56851614/article/details/146292954

3-Redis运行后验证

场景说明:使用docker把redis拉起来之后,但是能不能连接上,需要验证一下,【我又没有写代码】+【没有redis连接工具】怎么办?->使用redis自带的redis-cli进行验证

  • 执行脚本
# 1. 进入容器
docker exec -it <容器名或ID> sh# 2. 连本机默认端口
redis-cli# 3. 顺手跑两条命令验证
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> exit
  • 编写脚本check-redis.sh
#!/usr/bin/env bash
CONTAINER=$1
[ -z "$CONTAINER" ] && { echo "用法: $0 <容器名或ID>"; exit 1; }
docker exec "$CONTAINER" redis-cli ping && echo "✅ Redis 可正常连接" || echo "❌ 连接失败"

4-Docker运行Redis

  1. 你已在宿主机创建好目录
    /data/redis/{conf,data}
    并把 redis.conf 放在了 /data/redis/conf/redis.conf
  2. 希望 Redis 默认端口 6379 对外暴露为 同端口
  3. 使用 官方镜像 redis:latest(可换成 redis:7 或其他版本)

场景 1:只想快速跑一个 Redis 容器(无配置、无持久化)

#!/usr/bin/env bash
# file: 01_run_redis_default.shdocker run -d --name redis-default \-p 6379:6379 \redis:latest

特点

  • 容器内部用 Redis 自带默认配置
  • 数据全在容器层,容器删了数据就没
  • 最适合本地临时调试、单元测试

场景 2:容器跑 Redis,但使用本地自定义配置(不挂载数据目录)

#!/usr/bin/env bash
# file: 02_run_redis_with_local_conf.shCONF_FILE=/data/redis/conf/redis.conf# 如果配置里没写 daemonize,Redis 会前台运行,docker 需要这个
grep -q '^daemonize yes' "$CONF_FILE" && {echo "请把 redis.conf 中的 daemonize 设为 no,否则容器会退出"exit 1
}docker run -d --name redis-with-conf \-p 6379:6379 \-v "$CONF_FILE":/usr/local/etc/redis/redis.conf:ro \redis:latest \redis-server /usr/local/etc/redis/redis.conf

特点

  • 完全用你的 /data/redis/conf/redis.conf 启动
  • 数据仍写在容器层,重启容器数据丢失
  • 适合“想验证配置变更”又不想留垃圾数据的场景

场景 3:既要本地配置又要持久化数据到本地(生产/开发推荐)

#!/usr/bin/env bash
# file: 03_run_redis_full_mount.shCONF_FILE=/data/redis/conf/redis.conf
DATA_DIR=/data/redis/data# 1. 确保数据目录存在且 Redis UID(999) 可写
mkdir -p "$DATA_DIR"
chmod 755 "$DATA_DIR"
# 如果宿主机开了 SELinux,需加权限:chcon -Rt svirt_sandbox_file_t "$DATA_DIR"# 2. 同样检查 daemonize
grep -q '^daemonize yes' "$CONF_FILE" && {echo "请把 redis.conf 中的 daemonize 设为 no"exit 1
}docker run -d --name redis-full \-p 6379:6379 \-v "$CONF_FILE":/usr/local/etc/redis/redis.conf:ro \-v "$DATA_DIR":/data \redis:latest \redis-server /usr/local/etc/redis/redis.conf \--dir /data          # 让配置中的 dir 指向挂载点

特点

  • 配置、数据双向绑定宿主机,容器删除后数据仍在
  • 升级镜像只需 docker stop / rm / pull / run 一行即可,零数据丢失
  • 生产环境可再加 --restart=always、日志驱动等参数

附录:最小可用 redis.conf 示例(仅 4 行)

bind 0.0.0.0
port 6379
daemonize no
dir /data

把上面内容保存成 /data/redis/conf/redis.conf 就能直接给脚本 2、3 使用。


使用小结

  1. 临时测试 → 脚本 1
  2. 调配置、不 care 数据 → 脚本 2
  3. 长期运行、数据可恢复 → 脚本 3

直接 chmod +x *.sh && ./xx.sh 即可启动。祝使用愉快!


http://www.dtcms.com/a/411882.html

相关文章:

  • 给你一个网站如何做推广wordpress 页面加载时间 查询次数_和内存
  • 【LeetCode 每日一题】120. 三角形最小路径和——(解法二)自底向上
  • 教育培训门户网站模板下载网上有什么做兼职的网站
  • AI工具使用随笔
  • 基于PyQt5的邮件客户端开发:完整实现与深度解析
  • 建手机wap网站大概多少钱页面模板够30条
  • idea可以做网站吗大数据营销网站
  • wordpress导航站源码天津做系统集成的公司网站
  • 郑州网站制作公司怎么样wordpress 视频站主题
  • 谷歌外贸网站seo怎么做免费舆情信息网站
  • 整站优化和单词深圳互联网公司集中在哪个区
  • 【crud】update
  • Qt键盘输入法的开源方案
  • 门户网站 建设 通知wordpress略缩图压缩
  • .net网站开发简介广州平面设计培训机构
  • 沭阳网站设计绿植网站怎么做
  • DVWA | XSS 跨站脚本注入
  • 建设银行网站公告在哪wordpress前台浏览量插件
  • Java的认识及环境搭载
  • 网站做著作权网络信息公司是做什么的
  • Milvus 2.6 Data-in, Data-out,简化向量搜索
  • 鄠邑区建设和住房保障局网站广东深圳龙岗区天气
  • 级a做爰片免费视网站看看如何判断网站被google k
  • 陕西建设技术学院网站网站超市安装
  • 【读书笔记】架构整洁之道 P2~3 编程范式设计原则
  • 基于 PyTorch 的 CIFAR-10 图像分类学习总结
  • (附源码)医院门诊综合管理系统
  • 做外贸经常用的网站网站中单选按钮怎么做
  • 国家合同模板网站wordpress 首页伪静态
  • vite是什么