当前位置:首页 > 编程语言 > 正文内容

如何以及为什么在Docker中运行Redis?

a811625533年前 (2023-05-04)编程语言22

是一个高可用的内存数据库。它的磁盘持久性键值数据存储是多种高可用性用途的理想选择。

另一方面,是一个用于容器化应用程序和服务工具,隔离它们的环境,并允许它们单独运行。你可以把docker作为应用程序和服务的包管理器,其中包含所有必要的依赖关系、配置、脚本等。一个被称为Dockerfile的脚本被放置在Docker容器内,允许你将容器作为一个实体进行部署。

这篇文章教你如何有效地使用这两种开源技术。它还涉及到为什么在Docker容器内运行Redis集群是至关重要的,以及与在虚拟机或裸机服务器上运行Redis集群相比,这样做的优势和好处。

Redis的各种用途

Redis有。它更受欢迎的用途包括:

  • 分布式、键值数据库缓存
  • 消息 ***
  • 持久性对象缓存服务器

另外,Redis可以支持多种数据类型和结构,使它适合作为应用程序的主要和次要数据库层使用。它还支持列表、流、散列、 *** 等。

然而,你可以通过容器化进一步推动Redis的优势。

Redis在容器中的更佳表现

Redis是Docker注册表中更受欢迎的Docker镜像之一,下载量。将Redis应用容器化的原因是为了获得Docker的好处和社区对最常见的Redis用例的支持。

Redis Docker镜像有一个开源社区,创建并维护清晰的文档。而且最重要的是,Docker是高度可靠的,并能实现简单的使用和灵活性。

易用性

Docker隔离了在容器内运行的应用程序和服务的环境。隔离意味着你可以打包、构建和运送Redis镜像,无论主机操作系统如何,这使得在Docker内开发和运行Redis应用程序变得容易。此外,Docker Desktop简化了建立一个一致的本地开发环境,这对大型团队特别有用。

安全性

你可以在容器内用Redis扫描安全漏洞。Docker使用,这是一个对的安全性提供可见性的工具。它扫描Docker容器,并在镜像损坏的情况下提供细节和补救措施。Docker还可以生成一个软件材料清单(SBOM),用于扫描构建容器镜像时使用的所有依赖关系,尽管它仍处于试验阶段。

灵活性

Docker可用于大多数基于Unix和windows的操作系统和应用程序。由于你使用容器将软件与环境隔离,以确保它能与所有系统、Redis应用程序和服务一起运行,尽管有基础设施。

可靠性

Docker允许你在任何环境中可靠地运行任何容器化工作负载。Redis在Docker中是可靠的,因为Docker容器会定期对容器镜像进行快照,允许你在的情况下恢复到这些快照。你也可以通过在容器内挂载一个包含Redis数据库文件的目录来创建一个Docker卷。

Docker卷有助于保持容器的安全,避免任何形式的意外数据丢失。然而,需要注意的是,Docker卷并不包括镜像快照。你必须定期手动保存或备份Redis数据库文件中的数据。

如何在Docker中使用Redis

要把你的Redis存储放在Docker容器里,你必须在目标环境里有Docker。下面的说明告诉你如何在windows上安装Docker。

你可以按照上的指南来安装Unix或基于Unix的操作系统。安装和配置后,你可以在Docker容器内创建一个 *** 。然后你可以安装Redis并创建一个数据库。最后,你可以对你的Redis数据库进行操作。

首先,在你的操作系统上安装Docker。可以选择导航到并创建一个账户。你需要一个账户来创建和发布你的镜像。

Docker Hub

创建账户后,登录Docker Hub并下载你的操作系统的最新版本的Docker Desktop。

Docker下载页面

安装程序完成后,进入你的终端窗口,看看Docker引擎是否准备好了,然后输入以下命令:

docker --version

已安装的Docker版本

然后输入:docker-compose --version.

与Docker一起安装的Compose

Compose是一个使用YAML文件定义和运行多容器Docker应用程序的工具,你用它来配置应用程序服务。

你可以使用下面的代码运行一个Docker化的Redis来验证Docker引擎是否启动和运行。这个例子从Docker Hub运行Redis镜像,并命名为my-redis-contAIner

docker run --name my-redis-container -d redis

来自Docker Hub的Redis镜像被命名为my-redis-container

因为你没有本地的镜像,所以Docker从Docker Hub中提取Redis镜像。

现在,你可以打开Docker桌面,确认它拉取了Redis镜像。在仪表板上,点击左侧面板上的Images

Docker Desktop

现在,你可以创建一个 *** 。注意,Docker驱动使用桥接或覆盖的内置 *** 驱动来创建Docker *** 。你也可以安装和使用第三方的 *** 驱动。

不同的是,桥接 *** 在单个Docker引擎安装上是隔离的,而覆盖 *** 跨越多个Docker主机,每个主机运行一个引擎。

类型:

docker network create -d bridge kinsta-demo-network

使用桥接驱动的Docker ***

如果你默认没有指定任何驱动,Docker会使用桥接驱动来创建一个新的 *** ,因为它在你安装Docker引擎时自动创建桥接驱动。然而,如果你用Docker运行命令运行一个Docker容器,它就不会使用这个 *** 。

现在你有了一个 *** ,接下来就是在Docker容器内安装Redis。要做到这一点,输入: docker pull redis

从Docker Hub拉取Redis镜像

为了验证Redis镜像的安装是否正确,请运行以下命令之一:

docker images
docker image ls

用户终端中的可用Docker镜像

接下来,你创建并启动Redis容器。要做到这一点,请运行以下命令:

docker run -it –name dev_kinsta_redis_container -d redis

Docker conatainer

现在验证Redis是否在容器中运行。要做到这一点,输入: docker ps

验证Redis是否在容器中启动和运行

现在你已经确认你的Docker容器已经启动并运行,你可以将容器添加到 *** 中。输入: docker network connect

将一个Docker容器添加到创建的docker *** 中

一切都按预期进行,下一步是验证你在Docker内运行的Redis服务器是否准备好接受连接。要做到这一点,请使用 docker logs

验证Redis镜像是否在Docker容器内运行

接下来,你必须创建一个数据库,因为你需要一种 *** 来连接到Redis容器,以便在服务器上运行命令。要做到这一点,输入:docker exec -it bash。你可以交替使用容器名称和容器ID。

连接到Redis容器实例

在容器中,使用CLI来运行命令。注意,Redis会自动安装Docker主机。要使用Redis-CLI,请输入: redis-cli

使用Redis CLI来运行Redis命令

这样就可以连接到本地主机上的Redis的默认端口。输入: ping , 响应应该是 pong

测试Redis连接是否已启动并运行

接下来,通过输入 select 来选择你的Redis服务器内的数据库。虽然默认的数据库是 0 ,但选择 db 1

选择一个特定的Redis数据库

接下来,向数据库插入数据。使用 Redis SET 命令。要这样做,键入 SET <key> <value>

例如:

SET mykey "Hello"

要获得相同的键,键入

get myKey

从Redis插入和取回数据

要获得键的值,运行 get 。这将返回该值。接下来,通过输入 MONITOR 来监控你的 Redis 数据库。

监控 Redis 数据库

最后,通过退出CLI来停止Redis服务器。输入 exit 两次以退出CLI和Redis。

从 Redis CLI 中退出

最后,通过输入 docker stop 来停止Redis容器的运行。

执行命令,停止Docker容器的运行。

小结

在Docker容器中运行Redis有很多好处。它为你的应用程序提供了一个沙盒环境,所以你不必再关心你部署应用程序的平台。此外,Docker实现了易用性、灵活性和高可靠性。

关于安全性,你可以用Synk检查和扫描安全漏洞,Synk是一个对Docker镜像的安全性提供可见性的工具。而关于灵活性,Docker适用于大多数基于Unix和Windows的操作系统和应用程序。这种灵活性意味着,无论操作系统如何,docker化或容器化的应用程序或服务总是在运行。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/8000.html

分享给朋友:

“如何以及为什么在Docker中运行Redis?” 的相关文章

宝塔面板教程之FTP管理篇

宝塔面板教程之FTP管理篇

使用宝塔面板,您可以快速地创建一个FTP管理账户,对网站文件进行管理。但有必要提醒大家的是,使用FTP远不如使用SFTP安全,你可以查看文章“”进一步了解两者之间的差异。 此外,宝塔面板的文件管理模块其实已经能够满足站长的大部分文件管理需求。当然,如果你非得要使用FTP管理服务器文件,可以参照以下...

宝塔面板教程之数据库管理篇

宝塔面板教程之数据库管理篇

宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...

宝塔面板教程之安全管理篇

宝塔面板教程之安全管理篇

宝塔面板的安全管理可以设置SSH开关、禁用PING、放行端口、屏蔽IP等相关的操作。 SSH的设置 SSH的关闭与启动,点击下图的开关,即可开启或关闭SSH远程连接。 SSH端口的修改,SSH远程连接的默认端口为22,修改端口前,请先查看该端口是否被占用。 PING命令的...

2022年Web开发人员的平均工资统计报告

2022年Web开发人员的平均工资统计报告

想成为一名网络开发人员或好奇工作的哪些子类型的薪水最高?Web开发是一个竞争激烈、多样化的行业,随着新语言和框架的出现而不断发展。 询问Web开发人员的薪水是一个难以解决的问题(尽管我们尝试)。有太多的因素需要考虑。 无论您是自由开发者还是有兴趣从事更传统的工作、喜欢前端或后端工作,或者想知...

Serverless PHP简介:主要功能、用例以及如何在Lambda上开始使用Bref

Serverless PHP简介:主要功能、用例以及如何在Lambda上开始使用Bref

无服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。 服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。 换句话说,Serverle...

PostgreSQL与SQL Server之间的16个关键差异

PostgreSQL与SQL Server之间的16个关键差异

市场上有各种各样的数据库可供选择,用户通常可以仔细考虑PostgreSQL与SQL Server,以便为他们的用例找出更好的选择。使用PostgreSQL进行运营的组织可能希望切换到像Microsoft SQL Server这样的数据库,因为它主要迎合不同的数据仓库解决方案、电子商务和其他业务线...