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

Redis的Docker安装

在 Docker 中部署 Redis 非常简单,且便于管理和迁移。以下是详细的操作指南,包括基础部署、持久化配置、密码设置及日常管理:

一、拉取 Redis 镜像

从 Docker Hub 拉取官方 Redis 镜像,可指定版本(如6.27.0,默认拉取latest最新版):

bash

# 拉取最新版
docker pull redis# 拉取指定版本(如6.2)
docker pull redis:6.2

验证拉取结果:

bash

docker images | grep redis
# 输出示例:redis   6.2   xxxxxxxx   1 week ago   113MB

二、基础部署:启动 Redis 容器

1. 简单启动(无持久化,适合测试)

bash

docker run -d \--name redis \-p 6379:6379 \--restart=always \redis:6.2
2. 带持久化的启动(生产环境推荐)

Redis 默认数据存储在内存中,容器重启后数据会丢失。需通过数据卷挂载实现持久化(将 Redis 数据目录映射到主机):

bash

docker run -d \--name redis \-p 6379:6379 \-v /data/redis:/data \  # 挂载数据目录(容器内/data → 主机/data/redis)--restart=always \redis:6.2 \redis-server --appendonly yes  # 开启AOF持久化(数据实时写入磁盘)
参数说明:
参数作用
--name redis容器名称(自定义)
-p 6379:6379端口映射(主机 6379 → 容器 6379,Redis 默认端口)
-v /data/redis:/data持久化数据:容器内/data(Redis 默认数据目录)映射到主机/data/redis
--restart=always容器退出时自动重启
redis-server --appendonly yes启动 Redis 服务并开启 AOF(Append Only File)持久化(数据变更实时写入文件)

三、高级配置:自定义 Redis 参数

如需设置密码、修改内存限制等,可通过两种方式配置:

方法 1:通过命令行参数(适合简单配置)

bash

docker run -d \--name redis \-p 6379:6379 \-v /data/redis:/data \--restart=always \redis:6.2 \redis-server \--appendonly yes \          # 开启AOF持久化--requirepass your_password \  # 设置连接密码(替换为你的密码)--maxmemory 1024mb \        # 限制最大内存为1GB--maxmemory-policy allkeys-lru  # 内存满时删除最近最少使用的键
方法 2:通过自定义配置文件(适合复杂配置)
  1. 创建配置文件:在主机创建redis.conf(可从Redis 官方配置模板下载修改),关键配置示例:

    conf

    appendonly yes               # 开启AOF持久化
    requirepass your_password    # 连接密码
    maxmemory 1024mb             # 最大内存
    maxmemory-policy allkeys-lru # 内存淘汰策略
    bind 0.0.0.0                 # 允许所有IP访问(容器内需开启,否则外部无法连接)
    
  2. 启动容器时挂载配置文件

    bash

    docker run -d \--name redis \-p 6379:6379 \-v /data/redis:/data \-v /etc/redis/redis.conf:/etc/redis/redis.conf \  # 挂载配置文件--restart=always \redis:6.2 \redis-server /etc/redis/redis.conf  # 指定使用挂载的配置文件
    

四、容器管理与操作

1. 连接 Redis 服务
  • 方式 1:通过容器内客户端连接

    bash

    # 进入容器
    docker exec -it redis /bin/bash# 连接Redis(若设置了密码,需输入密码)
    redis-cli
    127.0.0.1:6379> auth your_password  # 输入密码(若有)
    127.0.0.1:6379> set test "hello"    # 测试设置键值对
    127.0.0.1:6379> get test            # 读取键值
    
  • 方式 2:从主机直接连接

    bash

    # 需先在主机安装redis-cli(如Ubuntu:sudo apt install redis-tools)
    redis-cli -h 127.0.0.1 -p 6379 -a your_password
    
2. 查看容器状态与日志

bash

# 查看状态
docker ps | grep redis# 查看实时日志
docker logs -f redis
3. 停止 / 重启 / 删除容器

bash

# 停止
docker stop redis# 重启
docker restart redis# 删除(需先停止)
docker rm redis

五、数据备份与恢复

由于已通过-v挂载数据卷,数据存储在主机/data/redis目录,直接备份该目录即可:

bash

# 备份数据(压缩为tar包)
tar -zcvf /backup/redis_data_$(date +%Y%m%d).tar.gz /data/redis# 恢复数据(替换现有数据,需先停止容器)
docker stop redis
rm -rf /data/redis/*  # 清空现有数据(谨慎操作)
tar -zxvf /backup/redis_data_20231017.tar.gz -C /  # 解压备份到根目录(会自动恢复到/data/redis)
docker start redis

六、常见问题解决

1. 外部无法连接 Redis
  • 检查端口映射是否正确:-p 6379:6379
  • 配置文件中是否绑定了0.0.0.0bind 0.0.0.0),避免只绑定127.0.0.1
  • 服务器防火墙是否开放 6379 端口(如 Ubuntu:sudo ufw allow 6379
2. 忘记 Redis 密码
  • 方法 1:停止容器,删除并重新创建(用新密码,数据卷不变则数据保留)
  • 方法 2:修改配置文件(移除requirepass行),重启容器后重置密码:

    bash

    # 进入容器后执行
    redis-cli
    127.0.0.1:6379> config set requirepass new_password  # 设置新密码
    
3. 数据卷权限错误

主机挂载目录权限不足导致 Redis 无法写入数据:

bash

# 修复权限(Redis容器内默认用户ID为999)
sudo chown -R 999:999 /data/redis
sudo chmod -R 755 /data/redis
http://www.dtcms.com/a/494359.html

相关文章:

  • Windows 11 24H2 图形化安装 Docker Desktop(自定义安装路径到 D 盘)
  • python+uniapp基于微信小程序的瑜伽体验课预约系统
  • 什么是Bug呢?
  • 怎么制作网站记事本嘉兴网络科技有限公司
  • 外贸网站建设有用吗做外贸常用那几个网站
  • 【小白笔记】在 PyTorch 和 NumPy 这样的张量库中,形状(Shape) (3,) 的真正含义
  • 新版视频直播点播平台EasyDSS用视频破局,获客转化双提升
  • 【OS笔记07】:进程和线程5-进程的同步与互斥
  • 基于Session和Redis实现短信验证码登录
  • 视觉Slam14讲笔记第6讲非线性优化
  • 仓库管理系统:定义、需求和​​类型
  • 项目管理进阶——解读 软件质量体系白皮书【附全文阅读】
  • ARQC生成模拟
  • 网站架构演变过程ui和网页设计
  • ASR+LLM:B站学习视屏下载并生成学习笔记
  • C++中的引用
  • Linux 系统下 ZONE 区域的划分
  • 网站内部链接优化方法cpanel伪静态wordpress
  • LangChain 表达式语言核心组合:Prompt + LLM + OutputParser
  • 【管理多版本Python环境】Anaconda安装及使用
  • AI修图革命:IOPaint+cpolar让废片拯救触手可及
  • 读书笔记整理--网络学习与概念整合
  • 老铁推荐个2021网站好吗wordpress 入口文件
  • 前端自动化部署全流程(Jenkins + Nginx)
  • 音视频处理(一):什么决定了你的音色?声音的三要素
  • python+uniapp基于微信小程序的助眠小程序
  • ELK运维之路(Filebeat第二章-7.17.24)
  • (未成功)Chrome调试避免跳入第三方源码(设置Blackbox Scripts、将目录添加到忽略列表、向忽略列表添加脚本)
  • 网站建设毕业答辩问题学建设网站首页
  • 大模型在企业云计算领域的核心应用能力要求