Docker 安装 Redis 容器

article/2025/7/14 21:26:25

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 1 获取redis镜像
  • 2 创建和部署redis容器
  • 3 查看redis是否启动成功
  • 4 使用Redis客户端验证连接
  • 总结


前言

搭建环境:
ubuntu22.04.05
docker
redis: 7.0.10

测试环境:
windows: win11
Redis测试客户端:Tiny RDM


1 获取redis镜像

sudo docker pull redis:7.0.10

这里镜像拉取超时,请移步娶我另一篇文章:从Docker拉取镜像一直失败超时解决办法

2 创建和部署redis容器

docker run -d -p 6379:6379 --restart=always \
-v redis_config:/etc/redis/config \
-v redis_data:/data \
--name redis redis:7.0.10 \
redis-server /etc/redis/config/redis.conf

关键参数功能
1. 容器运行模式与网络设置
-d:让容器以守护进程模式在后台运行,不会占用当前终端。
-p 6379:6379:将宿主机的 6379 端口和容器内部的 6379 端口进行映射,这样外部就能通过宿主机的 6379 端口访问 Redis 服务。
2. 容器重启策略
–restart=always:设置容器的重启策略为始终重启。不管是容器自身出现故障停止运行,还是 Docker 服务重启,亦或是宿主机重启,容器都会自动重新启动,确保 Redis 服务的高可用性。
3. 数据卷挂载情况
-v redis_config:/etc/redis/config:把名为 redis_config 的 Docker 命名卷挂载到容器内的 /etc/redis/config 目录,这个目录主要用于存放 Redis 的配置文件。
-v redis_data:/data:将名为 redis_data 的 Docker 命名卷挂载到容器内的 /data 目录,Redis 的数据文件会存储在这里,实现了数据的持久化存储。
4. 容器标识与基础镜像
–name redis:给容器命名为 redis,方便后续对容器进行管理和操作。
redis:指定使用 Docker Hub 上的官方 Redis 镜像来创建容器。
5. 容器启动命令
redis-server /etc/redis/config/redis.conf:这是容器启动时执行的命令,它会启动 Redis 服务器,并使用挂载的配置卷中的 redis.conf 配置文件来对 Redis 进行配置。
数据持久化与配置机制

  • 配置文件管理:通过挂载 redis_config 卷,你可以在宿主机上对 Redis 的配置文件进行修改,修改后无需重新创建容器,只需重启容器就能让新配置生效。
  • 数据持久化存储:redis_data 卷会保存 Redis 的所有数据。当容器被删除后重新创建,只要不删除这个数据卷,Redis 的数据就不会丢失。

注意要点

  1. 数据卷初始化操作:首次启动容器时,如果 redis_config 卷中没有 redis.conf 文件,Redis 会使用默认配置运行。你可以先不挂载配置卷启动容器,然后把容器内的默认配置文件复制到宿主机,再进行挂载。
  2. 配置文件权限问题:要保证宿主机上挂载的配置文件对容器内的 Redis 进程有可读权限,否则 Redis 可能无法正常启动。
  3. 生产环境参数设置:在生产环境中,建议根据实际需求调整 redis.conf 中的参数,例如设置密码、调整内存策略等。

通过这种方式部署 Redis 容器,能够实现配置与数据的分离,便于后续的维护和升级。

3 查看redis是否启动成功

1、查看docker容易redis的状态

sudo docker ps -a

在这里插入图片描述
此时状态是Restarting,是有问题的。

2、查看redis日志

sudo docker logs -f redis

在这里插入图片描述
3、查看数据卷详情

sudo docker volume inspect redis_config

在这里插入图片描述
4、进入此目录:

cd /var/lib/docker/volumes/redis_config/_data

注意:必须切换为root用户

5、创建redis.conf文件

touch redis.conf

6、在此文件中,添加以下内容

appendonly yes
port 6379	
requirepass 1234
bind 0.0.0.0	

配置好以后,重启redis:

docker restart redis

7、再次查看docker的redis容器状态

docker ps -a

在这里插入图片描述
此时成功

4 使用Redis客户端验证连接

使用的Redis客户端为Tiny RDM,下载地址为:Tiny RDM官网下载
安装完成以后打开:

1、创建连接
在这里插入图片描述
2、点击测试连接
在这里插入图片描述
3、点击确定,如下
在这里插入图片描述
此时,环境已经搭建完成。


总结

以上,就是在ubuntu上面使用docker部署redis的过程。


http://www.hkcw.cn/article/RrLdmgcKlw.shtml

相关文章

Spring Boot 3.X 下Redis缓存的尝试(二):自动注解实现自动化缓存操作

前言 上文我们做了在Spring Boot下对Redis的基本操作,如果频繁对Redis进行操作而写对应的方法显示使用注释更会更高效; 比如: 依之前操作对一个业务进行定入缓存需要把数据拉取到后再定入; 而今天我们可以通过注释的方式不需要额外…

【Linux】Ubuntu 20.04 英文系统显示中文字体异常

英文系统显示中文字体异常 新安装的 Ubuntu 20.04 英文系统,显示中文字体有些奇怪,比如在谷歌浏览器中中文字体显示效果如下 参考 英文版ubuntu默认中文显示很奇怪 解决方案 - dbxxx - 博客园 编辑文件 sudo gedit /etc/fonts/conf.avail/64-languag…

每天总结一个html标签——a标签

文章目录 一、定义与使用说明二、支持的属性三、支持的事件四、默认样式五、常见用法1. 文本链接2. 图片链接3. 导航栏 在前端开发中,a标签(锚点标签)是最常用的HTML标签之一,主要用于创建超链接,实现页面间的跳转或下…

Day10

1. ArrayList和LinkedList的区别? 底层结构:ArrayList 是基于动态数组实现,支持索引快速访问;LinkedList 是基于双向链表实现,依赖指针访问前后元素。插入与删除效率:在尾部操作时,两者性能相近…

Flask + Celery 应用

目录 Flask Celery 应用项目结构1. 创建app.py2. 创建tasks.py3. 创建celery_worker.py4. 创建templates目录和index.html运行应用测试文件 Flask Celery 应用 对于Flask与Celery结合的例子,需要创建几个文件。首先安装必要的依赖: pip install flas…

鸿蒙电脑会在国内逐渐取代windows电脑吗?

点击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 10年内应该不会 用Windows、MacOS操作系统的后果是你的个人信息可能会被美国FBI看到,但绝大多数人的信息FBI没兴趣去看 你用某家公司的电脑系统,那就得做好被某些人监视的下场,相信…

安全态势感知中的告警误报思考

如果说2020年还是小打小闹,那么2021年无疑是杀疯了,我带着我的误报识别系统和事件专家系统在流量态势感知领域杀疯了。先说说这个误报识别系统,我创新性的定义了灰色事件,认为告警不是非黑即白的,而是需要持续评估的&a…

电脑wifi显示已禁用怎么点都无法启用

一、重启路由器与电脑 有时候,简单的重启可以解决很多小故障。试着先断开电源让路由器休息一会儿再接通;对于电脑,则可选择重启系统看看情况是否有改善。 二、检查驱动程序 无线网卡驱动程序的问题也是导致WiFi无法启用的常见原因之一。我…

MAC电脑怎么通过触摸屏打开右键

在Mac电脑上,通过触摸屏打开右键菜单的方法如下: 法1:双指轻点:在触控板上同时用两根手指轻点,即可触发右键菜单。这是Mac上常用的右键操作方法。 法2:自定义触控板角落:可以设置触控板的右下角或左下角作为右键区域…

【音视频】 FFmpeg 硬件(AMD)解码H264

参考链接:https://trac.ffmpeg.org/wiki/HWAccelIntro 硬件编解码的概念 硬件编解码是⾮CPU通过烧写运⾏视频加速功能对⾼清视频流进⾏编解码,其中⾮CPU可包括GPU、FPGA或者ASIC等独⽴硬件模块,把CPU⾼使⽤率的视频解码⼯作从CPU⾥分离出来&…

【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)

📝 为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境) 🎯 安装目的说明 本次安装是为了在 MSYS2 的 MINGW64 工具链环境中,搭建一个完整的 Python 图像处理和科学计算开发环境。 主要目的是支持以下类型的 Pyth…

软件测评师教程 第2章 软件测试基础 笔记

第2章 软件测试基础 笔记 25.03.18 2.1 软件测试的基本概念 2.1.1 什么是软件测试 软件测试的定义: IEEE 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求 或是 弄清预期结果与实际结果之间的差异。 软件测试应尽…

[网页五子棋][匹配对战]落子实现思路、发送落子请求、处理落子响应

文章目录 落子实现思路发送落子请求处理落子响应两种棋盘的区别实现 handleTextMessage实现对弈功能控制台打印棋盘完善前端逻辑 落子实现思路 先来实现:点击棋盘,能发送落子请求 客户端 1 点击了棋盘位置,先不着急画子,而是给服…

【QT控件】QWidget 常用核心属性介绍 -- 万字详解

目录 一、控件概述 二、QWidget 核心属性 2.1 核心属性概览 2.2 enabled ​编辑 2.3 geometry 2.4 windowTitle 2.5 windowIcon 使用qrc文件管理资源 2.6 windowOpacity 2.7 cursor 2.8 font ​编辑 2.9 toolTip 2.10 focusPolicy 2.11 styleSheet QT专栏&…

【Java EE初阶】计算机是如何⼯作的

计算机是如何⼯作的 计算机发展史冯诺依曼体系(Von Neumann Architecture)CPU指令(Instruction)CPU 是如何执行指令的(重点) 操作系统(Operating System)进程(process) 进程 PCB 中的…

【仿muduo库实现并发服务器】使用正则表达式提取HTTP元素

使用正则表达式提取HTTP元素 1.正则表达式2.正则库的使用3.使用正则表达式提取HTTP请求行 1.正则表达式 正则表达式它其实是描述了一种字符串匹配的模式,它可以用来在一个字符串中检测一个特定格式的字串,以及可以将符合特定规则的字串进行替换或者提取…

力扣刷题Day 68:搜索插入位置(35)

1.题目描述 2.思路 方法1:回溯的二分查找。 方法2:看到了一个佬很简洁的写法,代码贴在下面了。 3.代码(Python3) 方法1: class Solution:def searchInsert(self, nums: List[int], target: int) ->…

23. Merge k Sorted Lists

目录 题目描述 方法一、k-1次两两合并 方法二、分治法合并 方法三、使用优先队列 题目描述 23. Merge k Sorted Lists 方法一、k-1次两两合并 选第一个链表作为结果链表,每次将后面未合并的链表合并到结果链表中,经过k-1次合并,即可得到…

docker-部署Nginx以及Tomcat

一、docker 部署Nginx 1、搜索镜像(nginx) [rootlocalhost /]# docker search nginx Error response from daemon: Get "https://index.docker.io/v1/search?qnginx&n25": dial tcp 192.133.77.133:443: connect: connection refused 简…

【dshow】VIDEOINFOHEADER2 头文件

VIDEOINFOHEADER2 是用于描述视频流格式的结构体&#xff0c;常用于 Windows 平台的 DirectShow 或 Media Foundation 编程中。 它的定义在以下头文件中&#xff1a; ✅ 所在头文件&#xff1a; #include <dvdmedia.h>&#x1f4cc; 前置说明&#xff1a; VIDEOINFOHEA…