引言
Redis 是当前最流行的内存数据库之一,广泛应用于缓存、消息队列、会话存储等场景。而 Docker 作为容器化技术的代表,极大简化了应用的部署和管理流程。
本文将带你使用 Docker 从零开始部署一个生产级的 Redis 服务,支持持久化、配置文件自定义、端口映射和数据卷挂载,确保数据安全与服务稳定。
一、环境准备
1. 确保已安装 Docker
在开始之前,请确保你的 Linux 系统已安装 Docker。可以通过以下命令检查:
docker --version
如果没有安装可以参考一下,在CentOS7中安装Docker的详细操作:
二、创建目录结构
为了持久化 Redis 的配置和数据,我们创建本地目录:
mkdir -p /root/redis/conf
mkdir -p /root/redis/data
/root/redis/conf
:用于存放redis.conf
配置文件/root/redis/data
:用于持久化 RDB/AOF 数据
三、准备 Redis 配置文件
1. 下载官方 Redis 配置模板
wget -O /root/redis/conf/redis.conf https://raw.githubusercontent.com/redis/redis/6.2/redis.conf
注意:我们使用的是 Redis 6.2.6 版本,因此下载对应分支的配置文件。
2. 修改关键配置项
编辑 /root/redis/conf/redis.conf
:
vim /root/redis/conf/redis.conf
修改以下几项:
# 允许远程连接(生产环境建议绑定具体 IP)
bind 0.0.0.0
# 设置密码(强烈建议)
requirepass your_strong_password_here
# 关闭保护模式(允许远程访问)
protected-mode no
#指定 Redis 服务监听端口为 6379(默认值)。
port 6379
#是否以后台守护进程方式运行。Docker 中必须设为 no,因为容器主进程不能是后台进程,否则容器会立即退出。
daemonize no
🔐 安全提示:请将 your_strong_password_here
替换为强密码!
四、启动 Redis 容器
使用以下 docker run
命令启动 Redis 服务:
docker run --name redis -d \
-p 6379:6379 \
-v /root/redis/conf:/etc/redis \
-v /root/redis/data:/data \
redis:6.2.6 \
redis-server /etc/redis/redis.conf
🔍 参数详解
参数 | 说明 |
---|---|
--name redis | 为容器命名,便于管理 |
-d | 后台运行容器 |
-p 6379:6379 | 将主机 6379 端口映射到容器 |
-v /root/redis/conf:/etc/redis | 挂载配置文件目录 |
-v /root/redis/data:/data | 挂载数据目录,实现持久化 |
redis:6.2.6 | 使用 Redis 6.2.6 镜像 |
redis-server /etc/redis/redis.conf | 指定启动时加载的配置文件 |
五、验证 Redis 是否正常运行
1. 查看容器状态
docker ps
输出应包含:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES
... redis:6.2.6 "docker-entrypoint..." Up 2 minutes 0.0.0.0:6379->6379/tcp redis
2. 进入容器测试
docker exec -it redis redis-cli
输入密码(如果设置了):
AUTH your_strong_password_here
执行测试命令:
ping
# 返回: PONG
set name "Qwen"
get name
# 返回: "Qwen"
六、常见问题与解决方案
问题 | 原因 | 解决方案 |
---|---|---|
Connection refused | Redis 未启动或端口未映射 | 检查 docker ps 和 -p 参数 |
NOAUTH Authentication required | 未认证 | 使用 AUTH password |
数据重启后丢失 | 未挂载 /data 目录 | 确保 -v /root/redis/data:/data |
无法远程连接 | bind 或防火墙问题 | 设置 bind 0.0.0.0 并开放 6379 端口 |
七、总结
通过本文,你已经学会了如何:
- ✅ 使用 Docker 快速部署 Redis
- ✅ 挂载配置文件实现自定义设置
- ✅ 挂载数据目录实现数据持久化
- ✅ 配置密码认证提升安全性
📚参考资料
- Redis 官方文档
- Docker Hub - Redis 镜像
- Redis 6.2 配置文件