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

Docker最佳实践(四):安装redis

大家好,欢迎各位工友。 本篇呢我们就来演示一下如何在Docker中部署redis容器,可以按照以下步骤进行:

1、搜索并拉取Redis镜像

-   使用`docker search redis`来搜索官方的Redis镜像。
-   使用`docker pull redis`来拉取最新的官方Redis镜像。

在这里插入图片描述

2、 准备配置和数据目录

-   创建必要的目录以存储Redis的配置和数据,例如:```mkdir -p /kim/redis/datamkdir -p /kim/redis/conf```

获取redis.conf配置文件,可以从 Redis官网 下载对应版本的配置文件并放到 /kim/redis/conf目录下。如果你使用的是最新版本的 docker 镜像,不知道版本号是多少,可以去 DockerHub 官网查看,也可以使用如下方式查看:

# 或者通过镜像查看,里面有redis版本信息
docker inspect 镜像ID# 也可以先启动一个容器,然后在宿主机使用如下命令查看:
docker exec -it 容器ID redis-server -v

下载完 redis.conf 复制一份到 /kim/redis/conf 目录下。

3、 修改配置文件(可选):

修改redis.conf文件以满足需要,例如启用远程访问、设置密码等。

# bind 127.0.0.1 				# 注释掉,这是限制redis只能本地访问
protected-mode no 		# 默认yes,开启保护模式,限制为本地访问
daemonize no					# 使用no,使用yes后台启动会和 docker run -d 的参数冲突,可能会启动失败
appendonly yes 				# redis持久化(可选)
requirepass 密码 			 # 配置redis访问密码

4、启动容器

1. 启动Redis容器

使用以下命令启动Redis容器,并挂载配置和数据目录:

sudo docker run -d --privileged=true --restart=always --name redis --sysctl net.core.somaxconn=511   -p 6379:6379 \
-v /kim/redis/conf:/etc/redis \
-v /kim/redis/data:/data \
-v /etc/localtime:/etc/localtime redis redis-server /etc/redis/redis.conf

在这里插入图片描述
使用远程工具连接测试:
在这里插入图片描述

2、常见异常问题解决办法

上述演示过程已经去除这些问题,请知悉。

1、内存超分配(overcommit)的设置问题、内核参数不够大,请求设置为511的异常,以及权限异常

在这里插入图片描述

  • 对于内存超分配问题解决方法:

  • 编辑 /etc/sysctl.conf 文件(或在某些系统上,可能是 /etc/sysctl.d/ 目录下的文件)。

  • 添加或修改以下行:

  • vm.overcommit_memory = 1

  • 保存文件并重新启动系统,或者运行 sudo sysctl -p 来立即应用更改。
    在这里插入图片描述

  • 对于内核参数不够大,请求设置为511的异常,以及权限问题:redis不推荐使用root用户运行容器。
    可以换一个用户执行以下命令即可,前提是先删除上个运行的redis容器。

#添加内核参数设置
--sysctl net.core.somaxconn=511
2、本地程序远程连接失败

出现的原因是,redis7.0以后的版本用户名由root更变为default更改如下配置即可
在这里插入图片描述

5、总结

上述我们演示了如何在docker中安装mysql镜像以及启动mysql容器,下篇文章我们来演示nginx的安装教程。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IDEA彻底卸载以及安装总结
  • 江科大/江协科技 STM32学习笔记P21
  • 加密案例分享:电子设备制造行业
  • 鸿蒙(API 12 Beta2版)媒体开发【Audio Kit简介】音频服务
  • python实战:数据分析基础知识
  • MySQL——索引(三)删除索引
  • 【Nacos无压力源码领读】(二) 集成 LoadBalancer 与 OpenFeign
  • flink1.18 编译遇到的问题
  • AI入门指南(二):算法、训练、模型、大模型是什么?
  • 【Linux】Ubuntu20.04系统中能在命令行ping通百度等网站,而在浏览器中不能上网的问题解决方法
  • OracleDatabaseException:sequence is not exist
  • 2.类和对象(上)
  • 009 | 上证50ETF基金数据分析及预测
  • Golang编译-如何忽略某些文件去编译
  • Redis 缓存击穿、穿透、雪崩
  • 【译】理解JavaScript:new 关键字
  • Bootstrap JS插件Alert源码分析
  • magento 货币换算
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • python 装饰器(一)
  • rabbitmq延迟消息示例
  • select2 取值 遍历 设置默认值
  • spring boot下thymeleaf全局静态变量配置
  • Yii源码解读-服务定位器(Service Locator)
  • 构建二叉树进行数值数组的去重及优化
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 网络应用优化——时延与带宽
  • ​iOS安全加固方法及实现
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ​香农与信息论三大定律
  • # SpringBoot 如何让指定的Bean先加载
  • ###C语言程序设计-----C语言学习(3)#
  • #14vue3生成表单并跳转到外部地址的方式
  • #NOIP 2014#Day.2 T3 解方程
  • #预处理和函数的对比以及条件编译
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (SpringBoot)第七章:SpringBoot日志文件
  • (搬运以学习)flask 上下文的实现
  • (第61天)多租户架构(CDB/PDB)
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (四)Android布局类型(线性布局LinearLayout)
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (杂交版)植物大战僵尸
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ./和../以及/和~之间的区别
  • .gitignore文件设置了忽略但不生效
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net 后台导出excel ,word