解决: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配置文件中daemonize是yes,表示Redis服务进程成为守护进程
3.使用的docker run命令中带有-d参数,表示直接后台启动Redis服务
4.宿主机跟Redis容器数据卷挂载映射的目录,都需要拥有可读可写操作权限
5. 综上所述:因此Redis容器里面启动时,容器中全是守护进程,所以容器会瞬间关闭,永远启动不起来
三·解决方案:
前提:先对宿主机的挂载映射目录,进行授权操作,两个方案都需要使用
chmod 777 /宿主机目录
解决方案一(推荐使用):该方案下Redis容器实例重启时,Redis服务也会自动启动。使用-d参数后台启动Redis服务,需要修改redis.conf配置文件
- 1.修改redis.conf配置文件参数
daemonize为no:
由于创建容器实例时,会进行容器数据卷挂载,因此可以直接在外部宿主机里面修改,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.退出容器验证结果:成功可用

相关文章:
解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示
解决:docker创建Redis容器成功,但无法启动Redis容器、也无报错提示 一问题描述:1.docker若是直接简单使用run命令,但不挂载容器数据卷等参数,则可以启动Redis容器2.docker复杂使用run命令,使用指定redis.co…...
Jlink+OpenOCD+STM32 Vscode 下载和调试环境搭建
对于 Mingw 的安装比较困难,国内的网无法正常在线下载组件, 需要手动下载 x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z 版本的软件包,添加环境变量,并将 mingw32-make.exe 名字改成 make.exe。 对于 OpenOCD,需要…...
单片机在物联网中的应用
单片机,这个小巧的电子设备,可能听起来有点技术性,但它实际上是物联网世界中的一个超级英雄。简单来说,单片机就像是各种智能设备的大脑,它能让设备“思考”和“行动”。由于其体积小、成本低、功耗低、易于编程等特点…...
16.Qt 工具栏生成
目录 前言: 技能: 内容: 1. 界面添加 2. 信号槽 功能实现 参考: 前言: 基于QMainWindow,生成菜单下面的工具栏,可以当作菜单功能的快捷键,也可以完成新的功能 直接在UI文件中…...
【Linux内核】从0开始入门Linux Kernel源码
🌈 博客个人主页:Chris在Coding 🎥 本文所属专栏:[Linux内核] ❤️ 前置学习专栏:[Linux学习]从0到1 ⏰ 我们仍在旅途 目录 …...
SQL Service 2008 的安装与配置
点击添加当前用户...
Apache POI | Java操作Excel文件
目录 1、介绍 2、代码示例 2.1、将数据写入Excel文件 2.2、读取Excel文件中的数据 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步…...
vue 学习definproperty方法
definproperty方法是Vue很重要的一个底层方法,掌握他的原理很重要,下面通过代码说明问题: <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>回顾Object.defineproperty方法</title&…...
react 实现路由拦截
简单介绍下项目背景,我这里做了一个demo,前端使用mock数据,然后实现简单的路由拦截,校验session是否包含用户作为已登录的依据,react-router-dom是v6。不像vue可以设置登录拦截beforeenter,react需要我们自…...
数据分析(一) 理解数据
1. 描述性统计(summary) 对于一个新数据集,首先通过观察来熟悉它,可以打印数据相关信息来大致观察数据的常规特点,比如数据规模(行数列数)、数据类型、类别数量(变量数目、取值范围…...
什么是 Flet?
什么是 Flet? Flet 是一个框架,允许使用您喜欢的语言构建交互式多用户 Web、桌面和移动应用程序,而无需前端开发经验。 您可以使用基于 Google 的 Flutter 的 Flet 控件为程序构建 UI。Flet 不只是“包装”Flutter 小部件,而是…...
多模态(三)--- BLIP原理与源码解读
1 BLIP简介 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 传统的Vision-Language Pre-training (VLP)任务大多是基于理解的任务或基于生成的任务,同时预训练数据多是从web获…...
掌握高性能SQL的34个秘诀多维度优化与全方位指南
掌握高性能SQL的34个秘诀🚀多维度优化与全方位指南 本篇文章从数据库表结构设计、索引、使用等多个维度总结出高性能SQL的34个秘诀,助你轻松掌握高性能SQL 表结构设计 字段类型越小越好 满足业务需求的同时字段类型越小越好 字段类型越小代表着记录占…...
美国纳斯达克大屏怎么投放:投放完成需要多长时间-大舍传媒Dashe Media
陕西大舍广告传媒有限公司(Shaanxi Dashe Advertising Media Co., Ltd),简称大舍传媒(Dashe Media),是纳斯达克在中国区的总代理(China General Agent)。与纳斯达克合作已经有八年的…...
【MySQL】多表关系的基本学习
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-3oES1ZdkKIklfKzq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...
Springboot之接入gRPC
1、maven依赖 <properties><!-- grpc --><protobuf.version>3.5.1</protobuf.version><protobuf-plugin.version>0.6.1</protobuf-plugin.version><grpc.version>1.42.1</grpc.version><os-maven-plugin.version>1.6.0…...
2023年中国数据智能管理峰会(DAMS上海站2023):核心内容与学习收获(附大会核心PPT下载)
随着数字经济的飞速发展,数据已经渗透到现代社会的每一个角落,成为驱动企业创新、提升治理能力、促进经济发展的关键要素。在这样的背景下,2023年中国数据智能管理峰会(DAMS上海站2023)应运而生,汇聚了众多…...
DS:八大排序之堆排序、冒泡排序、快速排序
创作不易,友友们给个三连吧!! 一、堆排序 堆排序已经在博主关于堆的实现过程中详细的讲过了,大家可以直接去看,很详细,这边不介绍了 DS:二叉树的顺序结构及堆的实现-CSDN博客 直接上代码: …...
Sora:继ChatGPT之后,OpenAI的又一力作
关于Sora的报道,相信很多圈内朋友都已经看到了来自各大媒体铺天盖地的宣传了,这次,对于Sora的宣传,绝不比当初ChatGPT的宣传弱。自OpenAI发布了GPT4之后,就已经有很多视频生成模型了,不过这些模型要么生成的…...
阅读笔记(BMSB 2018)Video Stitching Based on Optical Flow
参考文献 Xie C, Zhang X, Yang H, et al. Video Stitching Based on Optical Flow[C]//2018 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB). IEEE, 2018: 1-5. 摘要 视频拼接在计算机视觉中仍然是一个具有挑战性的问题࿰…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...
云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...
