docker第三讲 docker启动redis容器以及解决redis-server启动redis直接挂的问题

2023-11-08

本地启动配置redis

  • 安装包安装
安装gcc
yum install gcc
把下载好的redis-6.2.1r/1.tar.gz放在/usr/local文件夹下,并解压
wget https://download.redis.io/releases/redis-6.2.11.tar.gz
tar xzf redis-6.2.11.tar.gz
  • 编译与安装
make && make install

  • 命令
src/redis-server redis.conf		     #启动服务
src/redis-cli shutdown  			 #关闭服务
src/redis-cli -a root  shutdown 	 #password 需要验证

docker启动redis

docker拉取redis镜像

docker search redis 搜索
docker pull redis  拉取最新redis
docker pull redis:6.  拉取指定版本

配置redis运行:

docker run -itd --name redis -p 6379:6379 redis
c1a0da71c41a67bf43539b3c0c46afe5d92291fb6e0115b773ab10f30d48b2bd
进入Redis容器使用redis-cli命令进行连接:
docker exec -it redis redis-cli

进入redis内部,以客户端启动 

docker exec -it redis /bin/bash
root@c1a0da71c41a:/data# redis-cli
127.0.0.1:6379> set test 1
OK
127.0.0.1:6379> get test
"1"
127.0.0.1:6379> exit

redis.conf 从官网下载: http://download.redis.io/redis-stable/redis.conf

指定redis.conf 启动

docker run -p 6379:6379 --privileged=true  --name redis \
-v /mydata/redis/data:/data \
-d redis:5 redis-server --appendonly yes
docker run -p 6379:6379 --name redis \
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
-v /usr/local/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf --appendonly yes

命令解释:

-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf  以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/redis/redis.conf

客户端启动:

docker exec -it redis redis-cli

docker-compose启动redis
 

version: '3'
services:
  redis:
    image: redis:6.2.1
    container_name: redis
    ports:
      - 6379:6379
    volumes:
      - ./redis/data:/data:rw
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    networks:
      - dev

networks:
   dev:
     external: true

启动:

docker-compose -f docker-compose-redis.yml up -d

如果需要设置密码password:可以通过修改配置文件,或者增加命令的形式

    command: redis-server --requirepass redis

 修改配置文件redis.conf:

requirepass redis

但是遇到问题时,我在docker或者docker-compose指定使用redis-server redis.conf的时候,容器就起不来。

version: '3'
services:
  redis:
    image: redis:6.2.1
    container_name: redis
    command: redis-server /etc/redis.conf
    ports:
      - 6379:6379
    volumes:
      - ./redis/data:/data:rw
      - ./redis/redis.conf:/etc/redis.conf:rw
    networks:
      - dev

networks:
   dev:
     external: true

这里面需要考虑的一点就是redis.conf配置文件使用的后台启动,和docker的后台启动是互斥的,需要修改我们的配置文件:修改为前台启动

daemonize no

如果修改为前台启动后,还是不可以正常启动redis,就比如我遇到的问题:


Starting redis ... done
Attaching to redis
redis exited with code 1

可能就要考虑下你的redis.conf配置文件与你的redis镜像版本匹配问题,redis的镜像容器里是没有redsi.conf配置文件的,需要我们自己映射到容器,关于redis.conf配置文件可以在这里下载:https://redis.io/docs/management/config/

最后我本地使用的是reids-6.2.1的镜像,然后下载使用redis6.2的conf文件配置再次配置就成功起来了

protected-mode no
daemonize no
requirepass redis

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker第三讲 docker启动redis容器以及解决redis-server启动redis直接挂的问题 的相关文章

随机推荐

  • 【高危】企业微信私有化2.5-2.6.93版本后台API未授权访问漏洞

    漏洞描述 企业微信私有化2 5 x版本及2 6 930000版本以下后台中存在接口未授权访问漏洞 攻击者通过访问 cgi bin gateway agentinfo接口可获得Secret 从而利用开放API获取企业通讯录等敏感信息及企业微信
  • 【硬件学习之路】

    硬件学习之路 一个22年毕业的飞行器控制专业转电子的硬件小白 这篇文章将记录我实习以及工作经历 也就是自己的学习笔记啦 硬件本来就是一个需要积累的东西 学海无涯 希望自己能不断丰富自己 而我的工作岗位是助理工程师 主要是学习绘制原理图 板上
  • 机器学习——聚类——商场客户聚类

    聚类的介绍 案例 商场客户聚类 目录 聚类的介绍 案例 商场客户聚类 一 读取数据 二 聚类 KMeans函数的参数讲解 KMeans属性列表 KMeans接口列表 三 查看数据及可视化 sort values 方法 groupby 的常见
  • python torch在dataloader处卡死

    torch在dataloader处卡死 1 解决方案 2 调试历程 2 1 网上搜索了很多方法 尝试无果 故亲自调试 2 2 进入函数 发现一段神奇的代码 1 解决方案 num workers设置为0 一般解决大多数问题 修改读取数据部分代
  • 解析properties文件

    import java io InputStream import java util Properties public class PropertiesUtil public static String getValue String
  • ruby网站部署到服务器,Ruby China 已迁移到新的服务器,基于 Docker 部署

    终于决定要迁移新服务器了 之前那台老机器陪同 Ruby China 运作了 6 年 如果我没记错的话 系统还是 Ubuntu 12 04 昨天下班前还是准备 同步数据库到 UCloud 的 PostgreSQL 服务上 避免以后自己维护和备
  • Elasticsearch(一):入门篇

    文章目录 一 Docker安装ES和Kibana 二 基本概念 文档 index 索引 type 类型 id ID 三 保存或修改文档数据 POST PUT 四 检索文档 GET 1 检索一个文档 2 检索多个文档 mget 五 删除文档
  • 计算机组成原理——万字详解

    引言 作为还在学习的学生和不断进步的同事 学习计算机组成原理具有以下几个重要的好处 它可以帮助你深入理解计算机系统的工作原理 包括处理器 存储器 输入输出设备等组成部分之间的交互关系 这种深入理解可以提高你对计算机系统的整体把握能力 让你能
  • Selenium 自动化测试实战笔记1

    1 安装 selenium pip install selenium 3 11 0 安装指定版本 pip install selenium U 安装最新版本 pip show selenium 查看当前版本 pip uninstall se
  • linux关机等待90秒

    ubuntu关机时 提示 A stop job is running for Session c2 of user 1min 30s 解决方法 sudo gedit etc systemd system conf 去除默认的注释 修改为 D
  • Lua : 回调函数不用怕,用法简单仿C/C++

    Lua也可以做回调函数 那当然 不明觉厉 嘿嘿嘿 那是不是可以在Lua编程时候搞点飞机啦 加 function add x y return x y end 减法 function minux x y return x y end func
  • 使用Iframe+Post请求的方式嵌入第三方页面

    背景描述 本身我们有自己的一个系统 之后采购了一个新系统 新系统的页面要嵌入到我们自己系统页面来 两个系统之间的权限交互通过token来进行传递和认证 本身嵌入采用如下方式就非常简单了 就是常规的iframe嵌入页面的方式 常规的ifram
  • Windows10上使用VS2017编译OpenCV3.4.2+OpenCV_Contrib3.4.2+Python3.6.2操作步骤

    1 从https github com opencv opencv releases 下载opencv 3 4 2 zip并解压缩到D soft OpenCV3 4 2 opencv 3 4 2目录下 2 从https github com
  • ps2021神经网络AI滤镜下载,ps神经网络滤镜安装包

    如何解决ps2021 新版 AI神经滤镜不能用 网上买正版 更新下就好了 盗版的都会有各种这样的问题 ps2021神经AI滤镜是需简要上传云端 由Adobe官方服务器人工智能运算的 Ps2021版本新增了Ai神经元滤镜 它不是与软件一起安装
  • 如何实现Android app开机自启动

    这里写目录标题 前言 代码实现 AndroidManifest xml BootReceiver java MainActivity java MyService java 问题解决 前言 上一篇文章如何实现无界面Android app介绍
  • 深度学习中Epoch、Batch以及Batch size的设定

    Epoch 时期 当一个完整的数据集通过了神经网络一次并且返回了一次 这个过程称为一次 gt epoch 也就是说 所有训练样本在神经网络中都 进行了一次正向传播 和一次反向传播 再通俗一点 一个Epoch就是将所有训练样本训练一次的过程
  • ajax url传递中文乱码,jquery.ajax的url中传递中文乱码问题的解决方法

    JQuery JQuery默认的contentType application x www form urlencoded 这才是JQuery正在乱码的原因 在未指定字符集的时候 是使用ISO 8859 1 ISO8859 1 通常叫做La
  • 数据结构与算法实验3(栈) 括号匹配

    数据结构与算法实验3 栈 括号匹配 用栈ADT应用 对称符号匹配判断 输入一行符号 以 结束 判断其中的对称符号是否匹配 对称符号包括 lt gt 输出分为以下几种情况 1 对称符号都匹配 输出 right 2 如果处理到最后出现了失配 则
  • 54331 DCDC 纹波 干扰 收音机 原因

    用了一个TPS54331 把12 V 转5V后 再经过一个LDO转换为3 3V给收音IC 结果干扰非常大 这之前用的是LM2596 对收音机干扰很小 分析输出纹波大 但是一直找不到原因 最后 经过排查 对比54331的datasheet 发
  • docker第三讲 docker启动redis容器以及解决redis-server启动redis直接挂的问题

    本地启动配置redis 安装包安装 下载安装包 下载地址 Download Redis 安装gcc yum install gcc 把下载好的redis 6 2 1r 1 tar gz放在 usr local文件夹下 并解压 wget ht