基于docker安装redis服务

Redis是我们在项目中经常需要使用的缓存数据库,安装redis的方式也有很多,本文主要是给大家讲解如何基于docker进行redis服务的安装,主要介绍,如何拉取redis镜像、如何挂载redis的数据以及使用redis的配置文件和开启认证等功能,希望对大家能有所帮助。

拉取镜像

复制代码
docker pull redis

以上命令会从docker hub上拉取redis官方的镜像,如果拉取不成功,有可能是已有的镜像仓库不能使用了,可以参考docker镜像配置-CSDN博客,里面有详细的镜像仓库的配置,配置后,可以拉取到镜像。

启动容器

复制代码
docker run --name redis -d -p 6379:6379 redis

通过以上命令,可以启动一个redis容器,但这是一个简单的命令,用于创建一个redis服务,但该命令仅仅适用于演示的目的,因为没有挂载卷,所以容器销毁后,数据便也销毁了。

挂载卷

为了在容器销毁后,还可以持久化数据,我们需要挂载数据卷,以便持久化redis的数据

复制代码
docker run --name redis -d  -v redis-data:/data  redis:6.0 --save 60 1

如上所示,我们使用卷redis-data(启动容器时,会自动创建改卷,如有不解,可通过课程https://edu.csdn.net/course/detail/39643 学习),将其挂载到了容器的data目录中;--save标志会传递给Redis服务器。它配置要使用的持久化策略。本示例每 60 秒写入一次数据库快照。除非自上次快照后发生过 1 次数据库写入,否则该操作将被跳过。

配置文件

添加配置参数的最快捷方式,是将 CLI 参数作为 docker run 命令的一部分传递给 Redis 服务器。上面的 --save 例子就说明了这一点。在 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 /usr/local/etc/redis/redis.conf

将redis的配置文件放到运行docker命令的所在目录中的redis-conf目录下;以上命令中的第二个-v 会将宿主机中的redis-conf目录下的所有配置文件同步到宿主机的/usr/local/etc/redis目录中,而命令的最后一部分/usr/local/etc/redis/redis.conf是启动redis时使用的配置文件,所以需要确保宿主机的/redis-conf目录下,有个redis.conf配置文件,作为启动redis时使用的配置源。

配置远程访问

Redis启动后,默认无法远程访问的,只能本机访问,为了使得可以远程访问redis,需要修改redis.conf配置文件,将bind 127.0.0.1 注释掉,并将protected-mode的值设为no,如下图所示:

修改完配置文件后,重启redis容器,便可远程访问redis服务了

添加密码

为了保证redis服务器的安全,我们需要为redis设置密码,这样只有通过密码校验的远程才可以连接,从而保证了服务的安全,修改配置如下:

将改行的注释去掉,并将foobared改完自己需要设置的密码即可。修改后,保存配置文件并重启docker的redis容器,重启后,可以发现,如果不配置密码,则无法连接到redis服务。

注意,为了保证redis的安全,建议不要使用redis的默认端口6379,而换一个其他的端口号,如下命令,使用16379端口

复制代码
docker run --name redis -d -p 6379:6379 -v redis-data:/data -v /opt/server/docker/redis:/usr/local/etc/redis     redis /usr/local/etc/redis/redis.conf

如上所示,我们开发了宿主即的16379端口,这样远程连接时,使用该端口和设置的密码即可!

配置文件的下载地址:

https://raw.githubusercontent.com/redis/redis/6.2/redis.conf

相关推荐
安逸sgr5 分钟前
Hermes Agent + Obsidian 打造第二大脑(三):Docker 部署详解——从零到生产环境的完整实战指南!
运维·docker·容器·obsidian·hermes·hermesagent
逆境不可逃34 分钟前
一篇速通Redis 从原理到Java实战(含缓存问题解决方案+集群配置)
数据库·redis·缓存
小熊吃保安1 小时前
Excel下载变成了ZIP?Docker 容器里的 Content-Type 离奇失踪案
docker·go
小夏子_riotous1 小时前
Docker学习路径——9、Docker 网络深度解析:从默认网络到自定义网络实战
linux·运维·网络·docker·容器·centos·云计算
Java爱好狂.1 小时前
Redis高级笔记:原理+集群+应用+拓展+源码
java·数据库·redis·spring·java面试·后端开发·java八股文
牛奶咖啡132 小时前
Docker容器实践——使用docker-compose部署wordpress应用与prometheus监控
docker·云计算·docker-compose·一键部署wordpress应用·一键部署prometheus·生产环境套上nginx原因·使用nginx反向代理优势
风口旁的猪3 小时前
一套可落地的 .NET 8 微服务/分布式工程实践
docker·consul·.net core·efcore·refit
搬砖魁首3 小时前
基础能力系列 - 如何安全养虾? - 容器化部署龙虾
docker·qwen·openclaw·龙虾
禅口魔心12 小时前
边缘网关开发计划(一):在 Rock 5T 上部署 Docker
物联网·docker·rk3588·边缘网关
huihuihuanhuan.xin12 小时前
记一次 Docker PostgreSQL 连接认证失败的排查与解决
docker