【Docker系列十二】使用Docker run命令部署Redis
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
- 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
- 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- 使用 Docker run 命令部署 Redis 的完整指南
- 一、Redis 容器化概述
- 1.1 容器化部署优势
- 1.2 官方镜像特点
- 二、基础部署实战
- 2.1 获取官方镜像
- 2.2 最小化启动命令
- 2.3 连接验证
- 三、持久化与数据管理
- 3.1 数据目录挂载
- 3.2 配置文件定制
- 3.3 备份与恢复
- 四、安全加固配置
- 4.1 密码保护
- 4.2 网络隔离
- 4.3 非 root 运行
- 五、高级配置技巧
- 5.1 内存管理
- 5.2 主从复制
- 5.3 哨兵模式
- 六、生产环境部署
- 6.1 资源限制
- 6.2 健康监控
- 6.3 日志管理
- 七、性能优化建议
- 7.1 内核参数调优
- 7.2 持久化策略
- 7.3 连接池设置
- 八、故障排查指南
- 8.1 常见问题诊断
- 8.2 性能问题排查
- 8.3 恢复流程
使用 Docker run 命令部署 Redis 的完整指南
Redis 作为当今最流行的内存数据库和缓存解决方案之一,与 Docker 容器技术的结合为开发者提供了极致的部署灵活性和环境一致性。
一、Redis 容器化概述
1.1 容器化部署优势
Redis 容器化部署具有以下显著优势:
- 秒级启动:传统安装需要编译和配置,容器化部署仅需一条命令
- 环境隔离:每个 Redis 实例拥有独立的环境,避免端口和配置冲突
- 资源控制:精确限制 CPU、内存等资源使用量
- 版本管理:轻松切换不同 Redis 版本(4.0/5.0/6.0/7.0 等)
- 数据持久化:通过卷挂载实现数据持久存储
1.2 官方镜像特点
Redis 官方 Docker 镜像提供:
- 多个版本选择(最新稳定版/特定版本)
- 基于 Alpine 和 Debian 的两种镜像变体
- 自动配置机制
- 内置健康检查支持
- 默认安全配置(保护模式启用)
二、基础部署实战
2.1 获取官方镜像
拉取最新 Redis 镜像:
docker pull redis:7.0
验证镜像:
docker image inspect redis:7.0 | jq '.[0].Config.Cmd'
2.2 最小化启动命令
启动基础 Redis 容器:
docker run -d
--name redis-dev
-p 6379:6379
redis:7.0
参数说明:
-d
:后台运行模式--name
:指定容器名称-p
:端口映射(主机端口:容器端口)
2.3 连接验证
使用 redis-cli 连接测试:
docker exec -it redis-dev redis-cli
127.0.0.1:6379> PING
# 应返回 "PONG"
外部客户端连接:
redis-cli -h 127.0.0.1 -p 6379
三、持久化与数据管理
3.1 数据目录挂载
创建数据目录:
mkdir -p ~/redis-data/{data,conf}
启动持久化实例:
docker run -d
--name redis-prod
-v ~/redis-data/data:/data
-v ~/redis-data/conf:/usr/local/etc/redis
redis:7.0
redis-server /usr/local/etc/redis/redis.conf
3.2 配置文件定制
获取默认配置:
wget -O ~/redis-data/conf/redis.conf
https://raw.githubusercontent.com/redis/redis/7.0/redis.conf
关键配置修改:
# 启用持久化
save 900 1
save 300 10
save 60 10000
# 内存限制
maxmemory 2gb
maxmemory-policy allkeys-lru
# 安全设置
requirepass yourstrongpassword
3.3 备份与恢复
执行 RDB 备份:
docker exec redis-prod redis-cli SAVE
cp ~/redis-data/data/dump.rdb ~/redis-backup/
从备份恢复:
docker stop redis-prod
cp ~/redis-backup/dump.rdb ~/redis-data/data/
docker start redis-prod
四、安全加固配置
4.1 密码保护
通过环境变量设置密码:
docker run -d
--name redis-secure
-e REDIS_PASSWORD=yourstrongpassword
redis:7.0
redis-server --requirepass ${REDIS_PASSWORD}
4.2 网络隔离
创建专用网络:
docker network create redis-net
docker run -d
--network redis-net
--name redis-internal
redis:7.0
4.3 非 root 运行
docker run -d
--user redis
--cap-drop ALL
--read-only
redis:7.0
五、高级配置技巧
5.1 内存管理
限制内存使用:
docker run -d
--name redis-mem
--memory="2g"
--memory-swap="3g"
-e MAXMEMORY=2gb
redis:7.0
5.2 主从复制
主节点:
docker run -d
--name redis-master
redis:7.0
redis-server --appendonly yes
从节点:
docker run -d
--name redis-slave
--link redis-master:master
redis:7.0
redis-server --slaveof master 6379 --appendonly yes
5.3 哨兵模式
哨兵配置示例:
docker run -d
--name redis-sentinel
-v ./sentinel.conf:/sentinel.conf
redis:7.0
redis-sentinel /sentinel.conf
六、生产环境部署
6.1 资源限制
docker run -d
--name redis-production
--cpus="2"
--memory="4g"
--blkio-weight=500
redis:7.0
6.2 健康监控
启用健康检查:
docker run -d
--health-cmd="redis-cli PING || exit 1"
--health-interval=30s
--health-timeout=3s
--health-retries=3
redis:7.0
6.3 日志管理
JSON 格式日志:
docker run -d
--log-driver json-file
--log-opt max-size=10m
--log-opt max-file=3
redis:7.0
七、性能优化建议
7.1 内核参数调优
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf
sysctl -p
7.2 持久化策略
AOF 配置优化:
appendonly yes
appendfsync everysec
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
7.3 连接池设置
客户端连接优化:
timeout 300
tcp-keepalive 60
maxclients 10000
八、故障排查指南
8.1 常见问题诊断
查看运行日志:
docker logs redis-prod
内存分析:
docker exec redis-prod redis-cli INFO MEMORY
8.2 性能问题排查
慢查询分析:
docker exec redis-prod redis-cli SLOWLOG GET 10
监控关键指标:
docker exec redis-prod redis-cli INFO STATS
8.3 恢复流程
数据恢复步骤:
- 定位问题原因(日志/监控)
- 如有必要,从备份恢复 RDB 文件
- 验证数据完整性
- 逐步恢复服务
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙