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

【Linux Redis】关于用docker拉取Redis后,让虚拟机运行起来redis,并使得其可以连接到虚拟机外的navicat。


步骤一:拉取Redis镜像


docker pull redis
这个命令会下载最新版本的Redis镜像到你的本地Docker仓库中。你也可以指定一个具体的版本号,例如docker pull redis:6.2.6,来拉取特定版本的Redis镜像。

如果拉取遇到问题请参考【Linux AnolisOS】关于Docker的一系列问题。尤其是拉取东西时的网络问题,镜像源问题。-CSDN博客

拉取完后需要

创建一个目录用于存放 Redis 配置和数据:

存放配置

mkdir -p /myredis/redis/conf

存放数据

mkdir -p /myredis/data

创建配置文件redis.conf

sudo nano /myredis/redis/conf/redis.conf

配置文件redis.conf

# 开启密码验证(可选)
# requirepass xxx# 允许redis外地连接,需要注释掉绑定的IP
# bind 127.0.0.1# 关闭保护模式(可选)
protected-mode no# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
daemonize no# 开启redis数据持久化, (可选)
appendonly yes

小提示:

更改linux的文件名字/myredis/redis/conf/redis.config改成/myredis/redis/conf/redis.conf

mv /myredis/redis/conf/redis.config /myredis/redis/conf/redis.conf

步骤二:启动Redis容器

拉取完镜像后,你可以使用`docker run`命令来启动一个Redis容器。以下是一个基本的启动命令:

docker run -d --name my-redis -p 6379:6379 redis

- `-d`:表示以后台模式运行容器。
- `--name my-redis`:指定容器的名称为`my-redis`,你可以根据需要修改这个名称。
- `-p 6379:6379`:将主机的6379端口映射到容器的6379端口,这样你就可以通过主机的IP地址和端口来访问Redis服务了。
- `redis`:表示要运行的镜像名称。

也可以

使用以下命令启动Redis容器,并将配置文件和数据目录挂载到容器中

docker run --name myredis --privileged=true \
-p 6379:6379 \
-v /myredis/data:/data \
-v /myredis/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

参数说明

--name:设置容器名为redis。
-p 6379:6379:将容器的6379端口映射到宿主机的6379端口。
-v /myredis/data:/data:将宿主机的data目录挂载到容器的/data目录,用于数据持久化。
-v /myredis/redis/conf/redis.conf:/etc/redis/redis.conf:将宿主机的redis.conf配置文件挂载到容器的/etc/redis/redis.conf,使用自定义的配置文件启动Redis。
-d:以守护进程模式运行容器。
redis redis-server /etc/redis/redis.conf:指定容器启动后执行的命令,即用redis-server启动Redis服务,并使用/etc/redis/redis.conf配置文件。

步骤三:验证Redis容器是否启动成功

你可以使用

docker ps

命令来查看当前正在运行的容器列表,以验证Redis容器是否启动成功。

然后

检查配置文件

cat /myredis/redis/conf/redis.conf

检查容器内部配置文件

docker exec -it 运行着Redis服务的容器ID /bin/bash

跟着红框一步一步走

然后就是

ipconfig

找到红框ip

写到navicat里就行了。

希望:每次打开虚拟机都要自己启动redis所以想要让redis在打开虚拟机后自己启动

设置docker开机启动

sudo systemctl enable docker

对于redis

Docker提供了几种重启策略,以帮助管理和维护容器的运行状态。以下是关于always、unless-stopped、on-failure这三种重启策略的详细介绍:

看下策略之间先看下面的注意

  1. always策略

    • 行为:无论容器的退出原因是什么,Docker都会自动重启该容器。

    • 适用场景:这个策略适用于需要持续运行的关键服务,如Web服务器、数据库、消息队列等。它确保这些服务在发生任何故障时都能自动恢复,从而提高系统的可靠性和可用性。

    • 命令示例docker run --restart=always (容器id或者容器名)

  2. unless-stopped策略

    • 行为:只要容器没有被手动停止,Docker就会自动重启它。如果容器被手动停止了,则不会自动重启,除非再次手动启动。

    • 适用场景:这个策略提供了更灵活的重启选项。它适用于那些需要在维护、升级或调试期间暂时停止的服务,但又不希望这些服务在停止后自动重启的情况。

    • 命令示例docker run --restart=unless-stopped (容器id或者容器名)

    注意:当你使用 docker run 命令时,你实际上是在创建一个新的容器实例。如果你想要重启一个已经存在的容器,你应该使用 docker restart 命令,而不是再次运行 docker ru,或者docker update

    这里不知道为什么用redis,他老是说没这个容器,只好用容器id了(容器id怎么看,前面已经教了哈)

    查看是否设置成功,检查RestartPolicy内容 docker inspect 容器id或者名

    就是找到这个说明就OK了

    我才发现有叫redis的和redis镜像的,分明两个都是redis

docker inspect redis

可能是因为我拉取的是redis:latest,随着官方更新它也会跟着更新,所以运行时可能是其redis容器再分的容器,而redis这个大容器要保持和官方最新一直,以保证如果我们一直运行目前版本,也能更新。也确实可以看到,这个正在运行的容器确实是redis这个大容器的id的镜像。

小知识:

redis:latest 是一个 Docker 镜像标签,它指向 Redis 官方镜像的最新版本。当你使用 docker pull redis:latest 命令时,Docker 会从 Docker Hub(一个流行的 Docker 镜像仓库)上拉取 Redis 官方镜像的最新稳定版本。

以下是对 redis:latest 的详细解释:

  1. 镜像名称redis 是镜像的名称,它指的是 Redis 数据库系统。

  2. 标签(Tag)latest 是镜像的标签,用于指定要拉取的镜像版本。latest 标签通常指向该镜像的最新稳定版本。然而,需要注意的是,latest 标签可能会随着 Redis 的新版本的发布而更新,因此它可能不是完全固定的。

  3. 官方镜像:由于 redis:latest 是官方镜像的一部分,因此你可以放心地使用它,因为它经过了官方的测试和验证。

  4. 更新频率:随着 Redis 的新版本发布,redis:latest 标签所指向的镜像也会相应更新。这意味着,如果你经常拉取 redis:latest 镜像,你将获得 Redis 的最新功能和修复。

使用 redis:latest 镜像的优点包括:

  • 方便性:由于 latest 标签始终指向最新版本,因此你无需指定版本号即可获得最新的 Redis 镜像。

  • 兼容性:官方镜像通常与 Redis 的最新版本保持兼容,因此你可以放心地在生产环境中使用它。

然而,使用 redis:latest 镜像也有一些潜在的风险:

  • 不稳定性:由于 latest 标签指向的是最新版本,因此它可能包含一些尚未被充分测试的新功能和修复。这可能导致一些未知的问题或不稳定的行为。

  • 版本变化:由于 latest 标签可能会随着新版本的发布而更新,因此你的容器可能会在不通知的情况下自动升级到新版本。这可能会导致与现有代码或配置的兼容性问题。

为了降低这些风险,你可以考虑使用具有特定版本号的 Redis 镜像(例如 redis:6.2),以确保你的容器始终运行在同一版本的 Redis 上。这样可以提供更好的稳定性和可预测性。

相关文章:

【Linux Redis】关于用docker拉取Redis后,让虚拟机运行起来redis,并使得其可以连接到虚拟机外的navicat。

步骤一:拉取Redis镜像 docker pull redis 这个命令会下载最新版本的Redis镜像到你的本地Docker仓库中。你也可以指定一个具体的版本号,例如docker pull redis:6.2.6,来拉取特定版本的Redis镜像。 如果拉取遇到问题请参考【Linux AnolisOS】关…...

用deepseek学大模型04-模型可视化与数据可视化

deepseek.com: pytorch可视化工具 生成神经网络图 在 PyTorch 中,可视化神经网络结构的常用工具和方法有以下几种,以下将详细介绍它们的用法: 1. TensorBoard (PyTorch 官方集成) PyTorch 通过 torch.utils.tensorboard 支持 TensorBoard&a…...

一周学会Flask3 Python Web开发-post请求与参数获取

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili app.route 装饰器默认只支持get请求。假如我们要让绑定的视图函数支持其他请求方式,我们可以在methods属性里配置…...

第3章 .NETCore核心基础组件:3.1 .NET Core依赖注入

3.1.1 什么是控制反转、依赖注入 杨老师在书中进行了一系列的文字阐述,总结一下就是:软件设计模式中有一种叫做【控制反转】的设计模式,而依赖注入是实现这种设计模式的一个很重要的方式。也就是说学习依赖注入,是学习怎样实现控…...

cs*n 网页内容转为html 加入 onenote

csdn上有好用的内容,我们怎么将它们加到 onenote 里吃灰呢。 一、创建 新html create_html.py import sysdef create_html_file(filename):# 检查是否提供了文件名if not filename:print("请提供HTML文件名")return# 创建HTML内容html_content f"…...

平板作为电脑拓展屏

有线串流(速度更快) spacedesk 打开usb对安卓的连接 用usb线直接连接电脑和平板 无线串流(延迟高,不推荐) todesk pc和手机端同时下载软件,连接后可以进行远程控制或扩展屏幕 spacedesk 连接到同一个…...

Pytorch实现论文之一种基于扰动卷积层和梯度归一化的生成对抗网络

简介 简介:提出了一种针对鉴别器的梯度惩罚方法和在鉴别器中采用扰动卷积,拟解决锐梯度空间引起的训练不稳定性问题和判别器的记忆问题。 论文题目:A Perturbed Convolutional Layer and Gradient Normalization based Generative Adversarial Network(一种基于扰动卷积层…...

关系数据库标准语言SQL

1.SOL称为结构化查询语言,它是由1974年由Boyce和Chamberlin提出的,1975年至1979年IBM公司的San Jose Research Laboratory研制了关系数据库管理系统的原型系统SystemR,并实现了这种语言。 2.SQL(Structured Ouery Language)称为结构化查询语言 3.SQL数…...

AI工具篇:利用DeepSeek+Kimi 辅助生成综述汇报PPT

随着科研和学术报告需求的增加,如何高效地准备一份结构清晰、内容充实的PPT已成为许多研究者的挑战。 传统的PPT制作过程繁琐,需要大量文献收集、数据分析和设计工作,而AI工具能够帮助提升效率,减少重复劳动。 本文将介绍如何使用…...

学习总结2.18

在原本基本的数船的基础上,增加了船不能畸形的要求,船只能是矩形,由此需要在dfs找船前确定是否有畸形船 .* ** *. ** ** .* ** *. 出现畸形船的情况如上图,即两艘船有一个交集时,此时就可以判断出bad pl…...

electron下载文件,弹窗选择下载路径,并通知下载进度

1:在window.js中 引入session import { app, BrowserWindow, ipcMain, dialog, shell, session } from electron; 2:发送下载请求 // 在主进程监听渲染进程发送的 start-download 事件ipcMain.on(start-download, async (event, downloadUrl) > {l…...

【Docker】容器被停止/删除的方式及命令:全面解析与实践指南

文章目录 引言一、容器的生命周期二、停止容器的命令及方式1. docker stop 命令2. docker kill 命令3. docker pause 和 docker unpause 命令4. docker restart 命令 三、删除容器的命令及方式1. docker rm 命令2. docker container prune 命令3. docker rm 与 docker rmi 的区…...

线上就医全流程医药机构接入文档接口代码-医保就医接口php-demo版本

2025年2月18日11:28:03 国密算法开发库推荐 lpilp/guomi 我测试过php 7.2 - 8.0都可以兼容,如果有能力可以自己开发 目前已经开发了核心的接口的测试demo,并且封装了工具类直接写业务逻辑即可,并且已经有线上项目在使用,如果需要demo代码可…...

缓存三大问题及其解决方案

缓存三大问题及其解决方案 1. 前言 ​ 在现代系统架构中,缓存与数据库的结合使用是一种经典的设计模式。为了确保缓存中的数据与数据库中的数据保持一致,通常会给缓存数据设置一个过期时间。当系统接收到用户请求时,首先会访问缓存。如果缓…...

大语言模型常用微调与基于SFT微调DeepSeek R1指南

概述 大型语言模型(LLM,Large Language Model)的微调(Fine-tuning)是指在一个预训练模型的基础上,使用特定领域或任务的数据对模型进行进一步训练,以使其在该领域或任务上表现更好。微调是迁移…...

LabVIEW的吞雨测控系统

本案例介绍了一种基于LabVIEW开发的吞雨测控系统,该系统通过建模仿真分析不同控制器模式下的阶跃信号响应,从而选择了最适合的控制器。为了有效解决在控制流量过程中出现的振荡收敛和流量信号大扰动问题,系统采用了改进的积分分离PID算法&…...

redis基础命令

基于内存的数据存储系统 redis中数据以键值对存储的 键区分大小写 redis默认都是使用字符串存储数据 //启动服务 redis-server //连接客户端 redis-cli //连接客户端,--raw表示以原始的形式显示内容 redis-cli --rawset keyname valueget keynamedel keyname //…...

基于Java+SpringBoot+Vue的前后端分离的校园闲置物品交易网站

基于JavaSpringBootVue的前后端分离的校园闲置物品交易网站 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接…...

K8s 证书认知(K8s Certificate Awareness)

K8s 证书认知 在谈起 Kubernetes 证书时,总感觉其涵盖的内容繁多,仿佛千头万绪,让人不知该从何处着手阐述。为了更好地理清思路,本文将对相关内容进行系统的梳理和记录。 1、证书及链路关系 Kubeadm部署的集群,K8s …...

前x-ai首席科学家karpathy的从零构建ChatGPT视频学习笔记--8000字长图文笔记预警(手打纯干货,通俗易懂)

2025.2.17晚上21:57看完了整个视频,作为一个ai专业的学生虽然每天都在用ai,但是对于其背后的原理却不是那么清楚,而卡帕西的这支视频却让我醍醐灌顶,而且全程听起来很舒服,没有知识强行进入脑子的痛感,在他…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...