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

解决: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.mzph.cn/news/686954.shtml

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

相关文章

CVE-2022-24652 漏洞复现

CVE-2022-24652 开题 后台管理是thinkphp的,但是工具没检测出漏洞。 登陆后界面如下,上传头像功能值得引起注意 这其实就是CVE-2022-24652,危险类型文件的不加限制上传,是文件上传漏洞。漏洞路由/user/upload/upload 参考文章&a…

web 发展阶段 -- 详解

1. web 发展阶段 当前处于 移动 web 应用阶段。也是个风口(当然是针对有能力创业的人来说的),如 抖音、快手就是这个时代的产物。 2. web 发展阶段引出前后端分离的过程 2.1 传统开发方式 2.2 前后端分离模式 衍生自移动 web 应用阶段。 3.…

VMwareWorkstation17.0虚拟机安装搭建Windows 11虚拟机(完整图文详细步骤教程)

VMwareWorkstation17.0虚拟机安装搭建Windows 11虚拟机(完整图文详细步骤教程) 一、下载Windows11二、配置Windows11虚拟机机器环境三、启动Windows11系统 一、下载Windows11 【点击打开最全面的Windows 11原版系统镜像下载地址】 https://blog.csdn.ne…

463. Island Perimeter(岛屿的周长)

问题描述 给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] 1 表示陆地, grid[i][j] 0 表示水域。 网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有…

MySQL数据表的约束

已经一个星期没更了,因为过年嘛,比较忙,我玩心也大,就没继续更新,在这里给大家道歉,也祝大家新的一年快快乐乐,新年快乐。 为防止数据表中插入错误的数据,MySQL定义了一些规则维护数…

人工智能专题:2024亚太地区生成式人工智能应用与监管报告

今天分享的是人工智能系列深度研究报告:《人工智能专题:2024亚太地区生成式人工智能应用与监管报告》。 (报告出品方:德勤) 报告共计:20页 来源:人工智能学派 知识更新:了解传统…

IP地址+子网掩码+CIDR学习笔记

目录 一、IP地址 1、表示方法: 2、特殊IP地址 二、子网掩码 1、判断网络位和主机位 2、子网划分 三、无分类编址CIDR 1、CIDR路由汇聚 汇聚规则: 汇聚ID: 2、最佳路由匹配原则 一、IP地址 1、表示方法: 机器中存放的…

(免费领源码)java#springboot#mysql医院自助服务系统74853-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1研究意义 1.2研究背景 1.3springboot框架介绍 1.3论文结构与章节安排 2 医院自助服务系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分…

JWT登录验证前后端设计与实现笔记

设计内容 前端 配置全局前置路由守卫axios拦截器登录页面和主页 后端 JWT的封装登录接口中间件放行mysql数据库的连接 详细设计 路由设计 配置全局前置守卫,如果访问的是登录页面则放行,不是则进入判断是否有token,没有则拦截回到登录…

《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)

文章目录 10.1 构建微服务架构 - 探索 Go 语言的微观世界10.1.1 基础知识讲解10.1.2 重点案例:订单处理系统订单服务测试服务 10.1.3 拓展案例 1:用户认证服务安装所需的包实现用户模型和存储实现 JWT 生成和验证实现认证服务测试服务 10.1.4 拓展案例 2…

HarmonyOS—@State装饰器:组件内状态

State装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。 在状态变量相关装饰器中,State是最基础的,使变量拥有状态属性的装饰器&a…

SpringBoot RabbitMQ收发消息、配置及原理

今天分析SpringBoot通过自动配置集成RabbitMQ的原理以及使用。 AMQP概念 RabbitMQ是基于AMQP协议的message broker,所以我们首先要对AMQP做一个简单的了解。 AMQP (Advanced Message Queuing Protocol) is a messaging protocol that enables conforming client a…

(三十九)大数据实战——Prometheus监控平台的部署搭建

前言 Prometheus监控(Prometheus Monitoring)是一种开源的系统监控和警报工具。它最初由SoundCloud开发并于2012年发布,并在2016年加入了云原生计算基金会(CNCF)。Prometheus监控旨在收集、存储和查询各种指标数据&am…

GEE使用 Sentinel-1 SAR影像 和 Otsu 方法绘制洪水地图

洪水是世界上最常见、破坏性最大的自然灾害之一,造成了巨大的生命和财产损失。此外,随着气候变化的影响,近年来,洪灾变得更加频繁和不可预测。为了最大限度地减少生命和财产损失,必须迅速发现洪水蔓延的情况,并及时采取必要的干预措施。洪水蔓延探测大多使用光学传感器或…

大模型基础架构入门

大模型架构 Prefix Decoder 和 Causal Decoder 和 Encoder-Decoder 区别 在于 attention mask不同: https://zhuanlan.zhihu.com/p/626310493 为何现在的大模型大部分是Decoder only结构? https://www.zhihu.com/question/588325646/answer/335725261…

JVM-JVM中对象的结构

对象内存布局 对象里的三个区: 对象头(Header):Java对象头占8byte。如果是数组则占12byte。因为JVM里数组size需要使用4byte存储。 标记字段MarkWord: 用于存储对象自身的运行时数据,它是synchronized实现轻…

STM32——OLED菜单

文章目录 一.补充二. 二级菜单代码 简介:首先在我的51 I2C里面有OLED详细讲解,本期代码从51OLED基础上移植过来的,可以先看完那篇文章,在看这个,然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时…

MIPS指令集处理器设计(支持64条汇编指令)

一、题目背景和意义 二、国内外研究现状 (略) 三、MIPS指令集处理器设计与实现 (一).MIPS指令集功能性梳理 1.MIPS指令集架构 (1).mips基础指令集格式总结 MIPS是(Microcomputer without interlocked pipeline stages)[10]的缩写,含义是…

C++友元->全局函数做友元、类做友元、成员函数做友元

全局函数做友元代码&#xff1a; #include<iostream> using namespace std; #include<string> //建筑物类 class Building { //告诉编译器 goodGay全局函数 是 Building类的好朋友&#xff0c;可以访问类中的私有内容 friend void goodGay(Building * bu…

第14讲投票帖子详情实现

投票帖子详情实现 后端,根据id查询投票帖子信息&#xff1a; /*** 根据id查询* param id* return*/ GetMapping("/{id}") public R findById(PathVariable(value "id")Integer id){Vote vote voteService.getById(id);WxUserInfo wxUserInfo wxUserInf…