【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这三种重启策略的详细介绍:
看下策略之间先看下面的注意:
-
always策略
-
行为:无论容器的退出原因是什么,Docker都会自动重启该容器。
-
适用场景:这个策略适用于需要持续运行的关键服务,如Web服务器、数据库、消息队列等。它确保这些服务在发生任何故障时都能自动恢复,从而提高系统的可靠性和可用性。
-
命令示例:
docker run --restart=always (容器id或者容器名)
-
-
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 的详细解释:
-
镜像名称:
redis是镜像的名称,它指的是 Redis 数据库系统。 -
标签(Tag):
latest是镜像的标签,用于指定要拉取的镜像版本。latest标签通常指向该镜像的最新稳定版本。然而,需要注意的是,latest标签可能会随着 Redis 的新版本的发布而更新,因此它可能不是完全固定的。 -
官方镜像:由于
redis:latest是官方镜像的一部分,因此你可以放心地使用它,因为它经过了官方的测试和验证。 -
更新频率:随着 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】关…...
Python常见面试题的详解8
1. 变量作用域和查找规则(LEGB) 作用域层级: Local:函数内部作用域 Enclosing:闭包函数外层作用域 Global:模块全局作用域 Built-in:内置命名空间 查找顺序:L → E → G → B关…...
【含文档+PPT+源码】基于微信小程序的校园志愿者管理系统的设计与实现
项目介绍 本课程演示的是一款 基于微信小程序的校园志愿者管理系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…...
LED灯闪烁实验:实验介绍
文章目录 1 实验目标2 工具链2.1 硬件2.2 软件 3 实验流程 1 实验目标 本实验结合Matlab/Simulink工具链和STM工具链,实现STM32开发板上的LED灯闪烁功能。 2 工具链 2.1 硬件 STM32F103C8T6最小系统板 STM32F103C8T6最小系统板是基于STM32F103C8T6微控制器的开发…...
亲测Windows部署Ollama+WebUI可视化
一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载: https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上,你可以直接点击【model】 到达这个界面之后,…...
代码随想录-- 第一天图论 --- 岛屿的数量
99 统计岛屿的数量 c 99. 岛屿数量 #include <iostream> #include <vector> #include <queue>using namespace std;struct MGraph {int numVertices, numEdges;vector<vector<int>> Edge; };int dir[4][2] {{1, 0}, {0, 1}, {-1, 0}, {0, -1}…...
Docker 部署 Nacos (图文并茂超详细)
部署 Nacos ( Docker ) [Step 1] : 拉取 Nacos 镜像 docker pull nacos/nacos-server:v2.1.1[Step 2] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器 # 创建目录 mkdir -p /data/nacos/{conf,logs,data}# 创建容器 docker run -p 8848:8848 --name …...
petalinux高版本设置自动登录和开机自启动配置
petalinux-config -c rootfs 依次选择 Image Features -> serial-autologin-root 这是配置 进来就是root权限 创建并安装名为 myapp-init 的新建应用程序 petalinux-create -t apps --template install -n myapp-init --enable 编辑 project-spec/meta-user/recipes-…...
MySQL 的存储引擎简介
使用show engines可以查看安装的MySQL的引擎相关信息 MySQL 的引擎不止这么多,这只是安装的这个版本有的引擎。可以看到,只有 InnoDB 支持事务,其他的引擎都是不支持事务的。 说几个我了解的比较多的引擎: InnoDB InnoDB 是MyS…...
《Operating System Concepts》阅读笔记:p34-p40
《Operating System Concepts》学习第 7 天,p34-p40 总结,总计 7 页。 一、技术总结 1.virtualization(虚拟化) (1)定义 A technology for abstracting the hardware of a single computer into several different execution environments, thereby …...
嵌入式0xDEADBEEF
在嵌入式系统中,0xDEADBEEF 是一个常见的“魔数”(magic number),通常用于调试和内存管理。它的含义和用途如下: 1. 调试用途 未初始化内存的标记:在调试时,0xDEADBEEF 常用于标记未初始化或已…...
“深入浅出”系列之QT:(10)Qt接入Deepseek
项目配置: 在.pro文件中添加网络模块: QT core network API配置: 将apiUrl替换为实际的DeepSeek API端点 将apiKey替换为你的有效API密钥 根据API文档调整请求参数(模型名称、温度值等) 功能说明: 使…...
php文件包含
文章目录 基础概念php伪协议什么是协议协议的格式php中的协议file协议http协议ftp协议php://input协议php://filter协议php://data协议 php文件上传机制高级文件包含nginx文件日志包含临时文件包含session文件包含pear文件包含远程文件包含 基础概念 文件包含,相当…...
第四天面试题
文章目录 1.什么叫 Java 的内存泄露与内存溢出?**1. 内存泄露(Memory Leak)****内存泄露的常见原因:****如何避免内存泄露:** **2. 内存溢出(Out Of Memory, OOM)****内存溢出的常见原因&#x…...
网络技术变迁:从IPv4走向IPv6
目录 前言 旧时代产物:IPv4 什么是IPv4? IPv4的工作方式 IPv4的缺点 为什么要从IPv4过渡到IPv6? 走向IPv6:新一代互联网协议 IPv6的技术特性 我们需要过渡技术 双栈(Dual Stack) 隧道技术&#…...
突破反爬困境:从服务端渲染到客户端SPA,爬虫环境的演变与新挑战(一)
声明 本文所讨论的内容及技术均纯属学术交流与技术研究目的,旨在探讨和总结互联网数据流动、前后端技术架构及安全防御中的技术演进。文中提及的各类技术手段和策略均仅供技术人员在合法与合规的前提下进行研究、学习与防御测试之用。 作者不支持亦不鼓励任何未经授…...
ElasticSearch映射分词
目录 弃用Type why 映射 查询 mapping of index 创建 index with mapping 添加 field with mapping 数据迁移 1.新建 一个 index with correct mapping 2.数据迁移 reindex data into that index 分词 POST _analyze 自定义词库 ik分词器 circuit_breaking_excep…...
Vue.js 配置 Babel、Webpack 和 ESLint
Vue.js 配置 Babel、Webpack 和 ESLint 今天我们来聊聊如何配置 Babel、Webpack 和 ESLint,这三个工具在现代前端开发中扮演着重要角色。它们分别负责代码转译、模块打包和代码质量检测,合理配置它们能大大提高项目的开发效率和质量。下面我将详细介绍它…...
Es的text和keyword类型以及如何修改类型
昨天同事触发定时任务发现es相关服务报了一个序列化问题, 今天早上捕获异常将异常堆栈全部打出来看,才发现是聚合的字段不是keyword类型的问题。 到kibbna命令行执行也是一样的错误 使用 /_mapping查看索引的字段类型,才发现userUniqueid是te…...
1-18 GIT设置公钥
1-1 GIT如何设置公钥 1.0 注册账号 这个应该都是会的,就不做介绍了 2.0 设置公钥 PWD的作用是查看文件的路径 ssh-keygen -t ed25519 -C "Gitee SSH Key" 读取公钥文件: cat ~/.ssh/id_ed25519.pub 3.0 测试 查看绑定的用户名和邮箱࿱…...
什么是掉期(Swap)?——金融衍生品的关键工具(中英双语)
什么是掉期(Swap)?——金融衍生品的关键工具 引言 掉期(Swap) 是金融市场中最重要的衍生品之一,它允许两方交换未来的现金流,以优化融资成本、规避利率或汇率风险,甚至进行投机交易…...
Pytorch深度学习教程_3_初识pytorch
欢迎来到《PyTorch深度学习教程》系列的第三篇!在前面的两篇中,我们已经介绍了Python及numpy的基本使用。今天,我们将深入探索PyTorch的核心功能,帮助你更好地理解和使用这个强大的深度学习框架。 欢迎订阅专栏: 深度…...
基于Flask的艺恩影片票房分析系统的设计与实现
【Flask】基于Flask的艺恩影片票房分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统利用Python编程语言进行后端开发,结合Echarts进行数据的可视化展示&a…...
ollama-chat-ui-vue,一个可以用vue对接ollama的开源项目,可接入deepSeek
ollama-chat-ui-vue 使用vue3 vite elementUi 搭建的前端chat,通过ollama可与模型对话,目前支持独立思考,切换模型(联网查询后续支持) github地址:ollama-chat-ui-vue 制作不易github点点star,谢谢 前置工作 安装ollama,ollama官网地址 安装完olla…...
TCP开发
TCP客户端编程开发 任何的网络编程套接字开发的两种工作模式:TCP网络、UDP网络。 TCP和UDP的介绍 TCP:连接式网络通信,长连接通信或流式通信。TCP的通信一般稳定、可靠,但传输速度往往没有UDP快。其中有这样一个概念----心跳时…...
【核心算法篇十二】《深入解剖DeepSeek多任务学习:共享表示层的24个设计细节与实战密码 》
引言:为什么你的模型总在"精神分裂"? 想象你训练了一个AI实习生: 早上做文本分类时准确率90%下午做实体识别却把"苹果"都识别成水果公司晚上做情感分析突然开始输出乱码这就是典型的任务冲突灾难——模型像被不同任务"五马分尸"。DeepSeek通…...
Java 基于SpringBoot+Vue 的旅游网站信息化管理系统设计与实现
Java 基于SpringBootVue 的旅游网站信息化管理系统设计与实现 博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌ 🍅文末获取源码联系ἴ…...
构建简单RAG代码实现
步骤1:文档准备与切割 假设我们有一个关于机器学习的PDF文档需要处理。 示例代码: Python 深色版本 from llama_index import SimpleDirectoryReader # 加载文档 documents SimpleDirectoryReader(./data).load_data() 说明: 使用Simple…...
kubeadm拉起的k8s集群证书过期的做法集群已奔溃也可以解决
kubeadm拉起的k8s集群证书过期的做法 这个是很久之前遇到的了,今天有空(心血来潮)就都回忆回忆写在这里为爱发光,部分内容来自arch先生(死党)的帮助。有时候有很多部门提了建k8s的需求,有些是临…...
Ubuntu:20.04更新cmake到更高版本
从输出信息可以看出,您当前的系统中已经安装了 cmake,但版本是 3.16.3,而您的项目需要 CMake 3.18 或更高版本。默认情况下,Ubuntu 20.04 的官方软件仓库中提供的 CMake 版本较低(如 3.16.3),因…...
