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

Docker中安装Redis

 1、查看镜像

      到 Docker hub中查询需要的镜像:https://hub.docker.com/_/redis

2、拉取镜像

      使用 sudo docker pull redis 拉取镜像,如果不加版本号例如sudo docker pull redis ,则默认拉取最新版本。

      sudo docker pull redis 

 3、查看是否拉取成功

       sudo docker images

          下载的镜像是redis,版本是最新,镜像id是 xxxxx

 4、创建并启动一个redis容器

       注意:创建一个容器的时候,一个容器就相当于一个小的linux系统,系统里面安装着redis系统,因此我们为了方便维护这个容器中的redis,需要将容器中的redis文件进行挂载。挂载到虚拟机的linux中。下面的命令中 -v 就是在创建容器的时候,进行对应挂载。以后启动其他容器也是同样需要挂载。

因为安装的redis中/etc/redis没有文件redis.conf,因此需要先在虚拟机linux中创建此文件
sudo mkdir -p /mydata/redis/conf
sudo touch /mydata/redis/conf/redis.conf
chmod 777 /mydata/redis/conf
chmod 777 /mydata/redis/conf/redis.conf

启动容器
sudo docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf


参数说明:
-p 6379:6379 :将容器的6379端口映射到主机的6379端口
-v /mydata/redis/data:/data \:将容器中的redis数据文件挂载到主机
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf:将容器中的redis配置文件夹挂载到主机
-d redis redis-server /etc/redis/redis.conf :以后台方式运行,启动redis时候使用哪个配置文件
redis redis-server :启动redis服务命令


 ​

  5、查看运行的容器

        sudo docker ps       

         证明redis容器 已经运行起来了,可以通过redis界面工具进行操作查看    

​6、启动redis客户端

sudo docker exec -it redis redis-cli

 7、重启redis

 重启后获取对应的key的值,发现为空,原因是redis是基于内存的,重启后数据会丢失

6、配置redis.conf

使用redis的持久化

vi /mydata/redis/conf/redis.conf
输入以下内容后按ESC输入":wq"保存退出

appendonly yes


因为redis是基于内存的,每次关闭后设置的值是不会保存,因此设置此项
是为了关闭redis重启后,存储的值仍然存在,通过key值扔可以获取

 配置redis后,需要进行重启redis

7、挂载的原理:

        执行 sudo docker exec -it redis /bin/bash 命令,进入后执行ls,发现也是在linux系统中,说明我们mysql容器本身就是一个小的linux环境。如果要使用这个容器中的端口或者维护这个容器中redis的文件,则不方便,因此需要进行挂载到容器外面的linux系统中。挂载在创建容器时候已经执行,可查看容器外的linux系统的目录。

相关文章:

  • 糖尿病患者怎样养成良好习惯
  • 学习笔记:基于GMM的语音转换
  • Git基本应用<二>:Git的分支管理
  • 电商系统中的掉单问题
  • CONV1D卷积神经网络运算过程(举例:n行3列➡n行6列)
  • 数据结构c语言版第二版(严蔚敏)第一章练习
  • python练习Ⅱ--函数
  • 3D多模态成像市场现状及未来发展趋势分析
  • vscode 1.71变化与关注点(多配置预设/旧合并器回归等)
  • SQL面试题之区间合并问题
  • Linux用户和权限之一
  • 回溯法就是学不会2 —— 括号生成问题
  • ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL演示
  • 信息论学习笔记(二):离散无噪声系统
  • CentOS7启动SSH服务报错
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [译] 怎样写一个基础的编译器
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 2017年终总结、随想
  • dva中组件的懒加载
  • SQLServer之创建数据库快照
  • vue学习系列(二)vue-cli
  • WebSocket使用
  • 闭包--闭包作用之保存(一)
  • 成为一名优秀的Developer的书单
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 回流、重绘及其优化
  • 解析带emoji和链接的聊天系统消息
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端知识点整理(待续)
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 算法之不定期更新(一)(2018-04-12)
  • 突破自己的技术思维
  • 一个完整Java Web项目背后的密码
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 如何用纯 CSS 创作一个货车 loader
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • #13 yum、编译安装与sed命令的使用
  • #数学建模# 线性规划问题的Matlab求解
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)字符分类函数
  • (四)linux文件内容查看
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)程序员技术练级攻略
  • (转)项目管理杂谈-我所期望的新人
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET 发展历程