基于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

相关推荐
奶糖趣多多1 小时前
Redis知识点
数据库·redis·缓存
CoderIsArt2 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
追风林5 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
ketil276 小时前
Redis - String 字符串
数据库·redis·缓存
城南vision7 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge7 小时前
Docker篇(Docker Compose)
运维·docker·容器
王佑辉8 小时前
【redis】延迟双删策略
redis
生命几十年3万天8 小时前
redis时间优化
数据库·redis·缓存
Shenqi Lotus10 小时前
Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)
redis·sentinel·cluster·failover·sharding·自动分片·水平拆分
梦魇梦狸º11 小时前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github