解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示

news2025/3/11 11:10:50

解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示

  • 一·问题描述:
    • 1.docker若是直接简单使用run命令,但不挂载容器数据卷等参数,则可以启动Redis容器
    • 2.docker复杂使用run命令,使用指定redis.conf文件后台启动Redis服务、且挂载容器数据卷时,容器创建成功,但是永远无法启动Redis容器
  • 二·问题原因:
    • 1.docker容器里面,如果进程都是守护进程,则容器会自动关闭,并且没有报错
    • 2.Redis容器使用的redis.conf配置文件中`daemonize`是`yes`,表示Redis服务进程成为守护进程
    • 3.使用的docker run命令中带有-d参数,表示直接后台启动Redis服务
    • 4.宿主机跟Redis容器数据卷挂载映射的目录,都需要拥有可读可写操作权限
    • 5. 综上所述:因此Redis容器里面启动时,容器中全是守护进程,所以容器会瞬间关闭,永远启动不起来
  • 三·解决方案:
    • 前提:先对宿主机的挂载映射目录,进行授权操作,两个方案都需要使用
    • 解决方案一(推荐使用):该方案下Redis容器实例重启时,Redis服务也会自动启动。使用-d参数后台启动Redis服务,需要修改redis.conf配置文件
    • 解决方案二(了解拓展):该方案下Redis容器实例重启时,Redis服务不会自动启动,还是需要进去手动启动Redis服务。使用前端交互式命令,进行手动启动Redis服务

一·问题描述:

1.docker若是直接简单使用run命令,但不挂载容器数据卷等参数,则可以启动Redis容器

在这里插入图片描述

2.docker复杂使用run命令,使用指定redis.conf文件后台启动Redis服务、且挂载容器数据卷时,容器创建成功,但是永远无法启动Redis容器

在这里插入图片描述

二·问题原因:

1.docker容器里面,如果进程都是守护进程,则容器会自动关闭,并且没有报错

2.Redis容器使用的redis.conf配置文件中daemonizeyes,表示Redis服务进程成为守护进程

3.使用的docker run命令中带有-d参数,表示直接后台启动Redis服务

4.宿主机跟Redis容器数据卷挂载映射的目录,都需要拥有可读可写操作权限

5. 综上所述:因此Redis容器里面启动时,容器中全是守护进程,所以容器会瞬间关闭,永远启动不起来

三·解决方案:

前提:先对宿主机的挂载映射目录,进行授权操作,两个方案都需要使用

chmod 777 /宿主机目录

解决方案一(推荐使用):该方案下Redis容器实例重启时,Redis服务也会自动启动。使用-d参数后台启动Redis服务,需要修改redis.conf配置文件

  • 1.修改redis.conf配置文件参数daemonizeno

由于创建容器实例时,会进行容器数据卷挂载,因此可以直接在外部宿主机里面修改,docker会自动同步该文件到redis容器对应目录里面

#表示创建Redis服务的进程,是否为守护进程
daemonize no

在这里插入图片描述

  • 2.删除之前创建的redis容器实例
docker rm -f 容器id

在这里插入图片描述

  • 3.复杂使用run命令,再次重新创建redis容器实例。会进行容器数据卷挂载,指定redis.conf配置文件启动,使用-d参数后台启动redis服务(创建其他容器实例,命令格式也差不多这样)

注意:里面路径参数值,读者应该根据自己的实际情况进行修改

docker run -p 6379:6379  --name myRedis6.0.8  --privileged=true  -v /Applications/redis-6.0.8/config/redis.conf:/etc/redis/redis.conf  -v /Applications/redis-6.0.8/data:/data  -d redis:6.0.8  redis-server /etc/redis/redis.conf
  • 4.执行并校验Redis服务结果:成功可用!
    在这里插入图片描述
  • 5.退出容器时,注意使用ctrl+p+q方式,这样不会关闭容器
    在这里插入图片描述

解决方案二(了解拓展):该方案下Redis容器实例重启时,Redis服务不会自动启动,还是需要进去手动启动Redis服务。使用前端交互式命令,进行手动启动Redis服务

  • 1.无需修改配置文件参数daemonize值,yes或者no都行,这个参数表示创建Redis服务的进程,是否为守护进程;仅仅会导致使用命令redis-server /etc/redis/redis.conf启动服务时,形式不一样罢了;
    (1)如果为yes则启动时可以直接后台启动,不用一直保留终端窗口开着;
    (2)如果为no当前这种解决方案也可以使用,但是就不推荐了,因为这会需要终端窗口一直保持开着才行,否则就会关闭Redis服务
    在这里插入图片描述
  • 2.删除之前创建的Redis容器实例:
docker rm -f 容器id
  • 3.复杂使用run命令创建redis容器实例,且进行容器数据卷挂载,且使用交互式进入容器里面,该方式并不会启动Redis服务进程,需要到容器里面进行手动启动Redis服务(创建其他容器实例,命令格式也差不多这样)

注意:里面路径参数值,读者应该根据自己的实际情况进行修改

docker run -p 6379:6379  --name myRedis6.0.8  --privileged=true  -v /Applications/redis-6.0.8/config/redis.conf:/etc/redis/redis.conf  -v /Applications/redis-6.0.8/data:/data  -it redis:6.0.8  /bin/bash

在这里插入图片描述

  • 4.在容器里面手动启动Redis服务,并且验证Redis服务是否可用:成功可用!
#使用指定配置文件启动Redis服务
redis-server /etc/redis/redis.conf

在这里插入图片描述

  • 5.退出容器验证结果:成功可用
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1453874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库管理-第151期 Oracle Vector DB AI-03(20240218)

数据库管理151期 2024-02-18 数据库管理-第151期 Oracle Vector DB & AI-03(20240218)1 向量数据库应用场景2 Oracle Vector DB3 Vector数据类型4 Vector运算5 Vector DML插入向量获取向量 总结 数据库管理-第151期 Oracle Vector DB & AI-03&am…

【深度学习:图像注释工具】用于计算机视觉的最佳图像注释工具 [2024 年更新]

【深度学习:图像注释工具】用于计算机视觉的最佳图像注释工具 [2024 年更新] 评估计算机视觉项目的图像注释工具11 个最流行的图像注释工具Encord主要特征最适合 Scale主要特点最适合价钱CVAT主要特征最适合价钱 LabelboxKey Features 主要特征最适合价钱…

前端面试必备八股文——HTMLCSS

HTML src和href的区别 src和href都是用来加载外部资源,区别如下 src当浏览器解析到该元素时,会暂停其他资源的加载和处理,直到该资源加载完成。 它会将资源内容嵌入到当前标签所在的位置,将其指向的资源下载应用到文档内&#…

GIS工具maptalks——初始化

GIS工具maptalks开发手册(一)——hello world初始化 为何使用maptalks? ​ Maptalks项目是一个HTML5的地图引擎, 基于原生ES6、Javascript开发的二三维一体化地图。 通过二维地图的旋转、倾斜增加三维视角,通过插件化设计, 能与其他图形库echarts、d3.j…

数学建模【非线性规划】

一、非线性规划简介 通过分析问题判断是用线性规划还是非线性规划 线性规划:模型中所有的变量都是一次方非线性规划:模型中至少一个变量是非线性 非线性规划在形式上与线性规划非常类似,但在数学上求解却困难很多 线性规划有通用的求解准…

防火墙 iptables(二)--------------SNAT与DNAT

一、SNAT ①SNAT 应用环境: 局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) ②SNAT原理: 源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射 数据包从内网发送到公网时,SNAT会把数据包的源IP由…

两种方法判断Python的位数是32位还是64位

Python从1991年发布以来,凭借其简洁、清晰、易读的语法、丰富的标准库和第三方工具,在Web开发、自动化测试、人工智能、图形识别、机器学习等领域发展迅猛。     Python是一种胶水语言,通过Cython库与C/C语言进行链接,通过Jytho…

C++面向对象程序设计-北京大学-郭炜【课程笔记(三)】

C面向对象程序设计-北京大学-郭炜【课程笔记(三)】 1、构造函数(constructor)1.1、基本概念 2、赋值构造函数2.1、基本概念2.1、复制构造函数起作用的三种情况2.2、常引用参数的使用 3、类型转换构造函数3.1、什么事类型转换构造函…

LiveGBS流媒体平台GB/T28181功能-redis订阅国标设备状态redis订阅通道状态subscribe device操作及示例

支持Redis订阅国标设备状态及国标通道状态上线离线 1、设备状态监听的烦恼2、device订阅2.1、设备上线消息2.2、设备离线消息2.2、通道上线消息2.2、通道离线消息 3、订阅示例3.1、连接REDIS3.2、订阅device示例3.3、设备上线示例3.3.1、注册上线后 3.4、设备离线示例3.4.1、注…

力扣OJ题——旋转数组

题目:189.旋转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 思路一: 1.每次挪动旋转1位(用tmp将最后一位存起来,其余所有数据向后移,然后将tmp放在第一个位…

什么是VDA 4902?

VDA 4902为条码运输标签,主要为企业制作条码运输标签提供参考和标准。 运输标签唯一标识内部物料流以及货物供应商、货运代理和收货人之间运输中的运输方式和载货人。因此,所有供应商必须确保所有运输工具和载货架都带有符合 VDA 标准下 4902 第 4 版&a…

恢复被.target勒索病毒加密的数据文件:拒绝向.target勒索病毒支付赎金

引言: 在当今数字时代,勒索病毒已成为网络安全领域的一大威胁,而.target勒索病毒是其中引起广泛关注的一种变种。本文将深入探讨.target勒索病毒的特点以及被其加密的数据文件恢复方法。数据的重要性不容小觑,您可添加我们的技术…

用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 + 源码)

导 读 本文主要介绍使用Python和OpenCV搭建自己的一维码和QRCode扫描仪(步骤 源码)。 项目简介 本文我们将创建一个程序来扫描图像中的二维码和条形码。对于这个程序,我们需要三个包,分别是OpenCV、NumPy和pyzbar。大多数 Pyth…

linux搭建测试环境详细过程

前言 本文记录下,测试人员如何搭建测试环境,以供后面自己方便找,大家可以借鉴下搭建测试环境需要安装的有:nginx,redis,mysql,java,docker,保证这几个基本就可以用了&…

P1439 背包九讲(1):简单的0-1背包

P1439 背包九讲1:简单的0-1背包 一、原题呈现1、题目描述2、输入描述3、输出描述4、样例输入5、样例输出 二、思路分析这是一个最基础的01背包问题。 三、整体代码 一、原题呈现 1、题目描述 有一个箱子容量为 V(正整数,0<&…

BUGKU-WEB source

题目描述 题目截图如下: 进入场景看看: 解题思路 看源码,看F12网络请求没有东西只能老老实实按照提示用Linux去扫描目录 相关工具 kali虚拟机安装gobuster 或者dirsearch 解题步骤 先查看源码: flag{Zmxhz19ub3RfaGvyzS…

Code Composer Studio (CCS) - Breakpoint (断点)

Code Composer Studio [CCS] - Breakpoint [断点] 1. BreakpointReferences 1. Breakpoint 选中断点右键 -> Breakpoint Properties… Skip Count:跳过断点总数,在断点执行之前设置总数 Current Count:当前跳过断电累计值 References […

Cron表达式选择器

Cron表达式选择器 功能描述 Cron表达式选择器是用于定时任务调度的一种常见工具,通常用于指定任务的执行时间。Cron表达式由一系列时间单位和对应的时间值组成,用于指定任务的执行时间。下面是一个Cron表达式的示例 0 0 12 * * ?这个表达式的含义是每…

适用于 Windows 的 12 个最佳 PDF 编辑器

PDF文档的普遍存在按理说,PDF文档的可读性和可移植性受到专业文档的青睐。 然而,PDF格式的可食用性是一大缺陷。幸运的是,各种 PDF 编辑工具和软件使 PDF 的编辑变得更加容易,这篇文章旨在帮助我们的读者找到其中最好的工具和软件…

IPv4编址方式

IPv4编址方式 本文的知识都可以到B站up湖科大教书匠的视频里去看具体讲解。 分类地址 IPv4地址被分为网络号和主机号,可分为A类地址、B类地址、C类地址、D类地址、E类地址。其中,只有A类、B类、C类地址的可用于给网络中的主机编址。 A类地址的网络号…