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

news2025/4/21 14:58:16


步骤一:拉取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 上。这样可以提供更好的稳定性和可预测性。

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

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

相关文章

【含文档+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】 到达这个界面之后,…

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…

php文件包含

文章目录 基础概念php伪协议什么是协议协议的格式php中的协议file协议http协议ftp协议php://input协议php://filter协议php://data协议 php文件上传机制高级文件包含nginx文件日志包含临时文件包含session文件包含pear文件包含远程文件包含 基础概念 文件包含,相当…

网络技术变迁:从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…

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 测试 查看绑定的用户名和邮箱&#xff1…

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快。其中有这样一个概念----心跳时…

Java 基于SpringBoot+Vue 的旅游网站信息化管理系统设计与实现

Java 基于SpringBootVue 的旅游网站信息化管理系统设计与实现 博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌ 🍅文末获取源码联系&#x1f34…

Ubuntu:20.04更新cmake到更高版本

从输出信息可以看出,您当前的系统中已经安装了 cmake,但版本是 3.16.3,而您的项目需要 CMake 3.18 或更高版本。默认情况下,Ubuntu 20.04 的官方软件仓库中提供的 CMake 版本较低(如 3.16.3),因…

php 系统命令执行及绕过

文章目录 php的基础概念php的基础语法1. PHP 基本语法结构2. PHP 变量3.输出数据4.数组5.超全局变量6.文件操作 php的命令执行可以执行命令的函数命令执行绕过利用代码中命令(如ls)执行命令替换过滤过滤特定字符串神技:利用base64编码解码的绕…

论文笔记-WSDM2024-LLMRec

论文笔记-WSDM2024-LLMRec: Large Language Models with Graph Augmentation for Recommendation LLMRec: 基于图增强的大模型推荐摘要1.引言2.前言2.1使用图嵌入推荐2.2使用辅助信息推荐2.3使用数据增强推荐 3.方法3.1LLM作为隐式反馈增强器3.2基于LLM的辅助信息增强3.2.1用户…