Redis快速部署为Docker容器的实现方法

目录
  • 入门
  • 数据存储
  • 配置您的服务器
  • 管理Redis安全
  • 使用您的 Redis 安装
  • 概括

Redis是一种内存键值存储,可以保存高性能的抽象数据结构。开源软件通常用于数据库、消息传递和缓存功能。

Docker 是将应用程序打包到容器中的领先工具包。它允许您将软件组件隔离到具有自己的文件系统的独立环境中。

在本指南中,我们将使用 Docker 使用Docker Hub 上的官方镜像快速部署 Redis 。与裸机安装相比,Docker 实现了更简单的设置过程,并且不会用新包污染您的主机。在继续之前,请确保您的主机上安装了正常运行的 Docker。

入门

Redis 镜像包括服务器组件和官方 CLI。它已预先配置为在您启动新容器时使用运行的默认配置值启动服务器。

映像的变体可用于覆盖不同的 Redis 版本(5.0 和 6.0)和操作系统(Alpine 和 Debian)。浏览标签列表以找到适合您环境的最佳选项。

最简单的部署如下:

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

这将启动一个名为redisrunning Redis 6.0的新容器。该-d标志用于从容器中分离。服务器将一直在后台运行,直到您使用docker stop redis.

Redis 默认监听 6379 端口。该-p标志将此端口绑定到您的主机。您的应用程序将能够访问 Redis localhost:6379。请注意,这是不安全的——如果您的机器暴露在互联网上,任何人都可以访问您的 Redis 数据!

数据存储

Redis 支持多种持久性机制,可以将您的内存数据库保存到磁盘。数据将保存到/data容器中的目录中。由于 Docker 容器是临时的,您需要将卷挂载到此目录。否则,当您的容器停止时,您的数据将丢失。

docker run --name redis -d \
    -v redis-data:/data
    redis:6.0 --save 60 1

该–save标志被传递到 Redis 服务器。它配置要使用的持久性策略。此示例每秒钟写入一次数据库快照60。除非1自上次快照后发生数据库写入,否则将跳过该操作。

一个被调用的 Docker 卷redis-data由该-v标志创建。这会将您的数据存储在容器外,以便在重新启动后仍可访问。该卷将一直存在,直到通过运行将其删除docker volumes rm redis-data。

配置您的服务器

添加配置参数的最快方法是将 CLI 参数作为docker run命令的一部分传递给 Redis 服务器。–save上面的例子说明了这一点。图像名称 in 之后的任何内容docker run都将传递给在容器内执行的命令。对于 Redis 映像,该命令是 Redis 服务器。

使用 CLI 标志很快就会变得重复。您可以通过将路径作为服务器的第一个参数传递来使 Redis使用配置文件。该文件通常位于/usr/local/etc/redis/redis.conf. 使用 Docker 绑定安装redis.conf从安装到容器的本地文件系统获取:

docker run --name redis -d \
    -v redis-data:/data
    -v ./redis-conf:/usr/local/etc/redis
    redis:6.0 /usr/local/etc/redis.conf

在您的工作目录中放置一个redis.confinside redis-conf。Docker 会将此路径挂载到容器中,让 Redis 可以访问docker run命令中指定的文件。

管理Redis安全

默认情况下,Redis Docker 映像配置为在不受保护的模式下运行 Redis。这使得使用 Docker 网络从其他 Docker 容器访问 Redis 服务器变得更加容易。但是,这也意味着可以到达您的容器的任何东西都可以完全访问您的数据。

保护模式是Redis 的一项功能,它仅响应从主机的环回地址发出的未经身份验证的查询,例如localhost. 您可以通过添加protected-mode yes到您的redis.conf. 当与 Dockerized 安装一起使用时,这将导致 Redis 只能在其自己的容器内访问,这通常并不理想。

您可以通过添加requirepass example到您的redis.conf. Redis 将只接受来自提供配置密码的客户端的查询。Redis 6 还支持功能更齐全的访问控制,让您可以设置具有不同权限的多个用户帐户。

要使用身份验证,请按照上一节中的指导创建 Redis 配置文件并将其挂载到您的容器中。如果您不想设置密码,只需将其加入应用程序所需的 Docker 网络,即可确保您的安装安全。不要在没有先设置身份验证的情况下将端口 6379 绑定到您的主机。

使用您的 Redis 安装

现在 Redis 已完全设置,您可以继续从客户端访问它。如果您从主机连接,则可以使用 Docker 容器的 IP(通过运行可见docker inspect redis,根据容器名称进行调整)和端口6379。

要从另一个 Docker 容器访问 Redis,最好将两个容器都加入一个 Docker 网络:

docker network create redis
docker run --name redis --network redis -d redis:6.0
docker run --name api --network redis -d my-api:latest

现在,您的应用程序容器将能够通过redis主机名上的端口 6379 访问 Redis 。当它们共享一个 Docker 网络时,Docker 使容器名称可以作为主机名访问。

您可以使用redis-cli容器映像中包含的二进制文件手动与数据库交互。以分离模式 ( -d)启动您的容器,使其在后台运行。然后使用docker exec运行redis-cli命令:

docker exec -it redis-container redis-cli

这将使您进入容器内的 Redis CLI 会话。

概括

Docker 可以让您快速轻松地启动新的 Redis 实例,而无需将软件安装到您的机器上。使用官方 Docker 镜像启动你的容器,然后添加命令标志或挂载一个配置文件以满足你的需要。

需要始终牢记的两件事是存储和安全性:如果您需要使用 Redis 持久性功能,则应该使用 Docker 卷以避免丢失数据。请记住,Dockerized Redis 默认为无保护模式且无需身份验证,因此在最坏的情况下,暴露 6379 端口可能会产生灾难性的后果。

到此这篇关于Redis快速部署为Docker容器的实现方法的文章就介绍到这了,更多相关Redis部署为Docker容器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于docker容器部署redis步骤介绍

    目录 1 redis配置文件 2 docker命令启动 3 docker-compose启动 1 redis配置文件 官方下载:redis.conf 路径:在容器中,一般可以保存在/etc/redis/redis.conf 路径中 配置文件详解,根据实际情况进行修改: # 这里的bind指的是只有指定的网段才可以访问redis,注释后则没有这个限制 # bind 127.0.0.1 # 默认端口为6379 port 6379 # daemonize表示是否以守护进程进行执行,容器中执行必须设置成

  • Redis快速部署为Docker容器的实现方法

    目录 入门 数据存储 配置您的服务器 管理Redis安全 使用您的 Redis 安装 概括 Redis是一种内存键值存储,可以保存高性能的抽象数据结构.开源软件通常用于数据库.消息传递和缓存功能. Docker 是将应用程序打包到容器中的领先工具包.它允许您将软件组件隔离到具有自己的文件系统的独立环境中. 在本指南中,我们将使用 Docker 使用Docker Hub 上的官方镜像快速部署 Redis .与裸机安装相比,Docker 实现了更简单的设置过程,并且不会用新包污染您的主机.在继续之前

  • 把数据库部署在docker容器内有哪些缺陷

    前言 近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗? 这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,小编整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点. 目前为止将数据库容器化是非常不合理的,但是容器化的优点相信各位开发者都尝到了甜头,希望随着技术的发展能够更加完美的解决方案出现. Docker不适合部署数据库的7大原因 1.数据安全问题 不要将数据储存在

  • .net 4.5部署到docker容器的完整步骤

    前言 本文主要给大家介绍了关于.net 4.5部署到docker容器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 .net4.5部署到docker容器 部署到windows容器 部署到linux容器 部署到windows容器 由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像. 1.两个现成的例子 .net console程序 docke

  • .NET 5 部署在docker上运行的方法

    1.创建站点 创建一个ASP.NET Core Web应用程序,选中启用Docker支持.自动帮我们创建一个Dockerfile文件. 2.编写Dockerfile文件 dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像.由一行行命令语句组成,并且支持#开头的注释行. dockerfile主题内容一般分为4部分 基础镜像信息 维护者信息使用label指令 镜像操作指令 容器启动时执行指令 #See https://aka.ms/container

  • docker容器使用GPU方法实现

    目录 1.无nvidia-docker 2.nvidia-docker1.0 3.nvidia-docker2.0 4.安装docker-19.03及以上版本 为了使docker容器可以使用nvidia-docker,可以有如下几种办法: 1.无nvidia-docker 在早期的时候,没有nvidia-docker,可以通过在容器内再部署一遍nvidia GPU驱动解决.同理,其他设备如果想在容器里使用,也可以采用在容器里重新安装一遍驱动解决. 2.nvidia-docker1.0 nvidi

  • 详解复制备份docker容器数据的方法

    这里以jenkins容器为例,介绍三种方法. 方法一 将容器打包成镜像,这时数据就在镜像中了,im:1.0为容器名,可以随便取 docker commit <container id> im:1.0 重新运行镜像,-v将容器内tmp目录映射到宿主机上的tmp目录 docker run -itd -v /tmp:/tmp im:1.0 // 第一个tmp是宿主机目录,第二个是容器内目录 把 /var/jenkins_home的文件复制到tmp下,注意这里的container name是随机生成的

  • Docker容器的使用方法简单示例

    目录 一.拉取镜像 二.运行镜像 三.测试容器内的应用 四.检查宿主机端口 五.停止容器 一.拉取镜像 1.检测镜像是否存在 [root@node1 ~]# docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 15187 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker con- 2

  • vscode 远程连接服务器docker容器的设置方法

    目录 拉取镜像 运行镜像(产生一个容器) 启动容器 进入容器 查看所有镜像 退出容器 重启容器 查看所有容器 删除容器 批量删除docker中已经停止的容器 vscode通过ssh远程连接服务器中的容器 拉取镜像 docker pull [options] name [:tag] 表示从仓库拉取镜像 options是参数 tag是版本 运行镜像(产生一个容器) docker run [options] image [:tag] [command] [arg-] 运行一个容器 以镜像为模版创建容器

  • 教你使用Portainer管理多台Docker容器环境的方法

    目录 Portainer管理多台Docker容器环境 2.管理docker 2.1安装运行portaner 2.2修改配置文件 2.3添加节点 2.4效果图 3.踩坑记录 3.1connection refused Portainer管理多台Docker容器环境 1.环境准备 # aliyun 2核8G 139.196.95.123 安装docker和Portainer # aliyun 1核2G 47.100.34.199 安装docker # qingcloud 1核2G 139.198.1

  • Docker Compose快速部署多容器服务实战的实例详解

    目录 1 什么是Docker Compose 2 安装Docker Compose 3 Docker Compose文件格式的简单介绍 4 Docker Compose常用命令 5 使用Docker Compose一键部署Spring Boot+Redis实战 5.1 构建应用 5.1.1 Spring Boot项目 5.1.2 Redis配置文件 5.2 打包应用并构建目录 5.2.1 打包Spring Boot项目 5.2.2 上传redis.conf配置文件 5.3 编写Dockerfil

随机推荐