基于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·缓存
joker_zsl1 小时前
docker的安装和简单使用(ubuntu环境)
运维·docker·容器
观无1 小时前
Redis安装及入门应用
数据库·redis·缓存
啥都想学的又啥都不会的研究生2 小时前
Kubernetes in action-初相识
java·docker·微服务·容器·kubernetes·etcd·kubelet
赵我说的做_life3 小时前
基于Docker的Flask项目部署完整指南
docker·容器·flask
XY.散人4 小时前
初识Redis · 哨兵机制
数据库·redis·缓存
江畔独步4 小时前
docker容器监控&自动恢复
docker·容器·eureka
特立独行的猫a5 小时前
redis客户端库redis++在嵌入式Linux下的交叉编译及使用
linux·数据库·c++·redis·redis客户端库
爱吃泡芙的小白白6 小时前
爬虫学习——使用HTTP服务代理、redis使用、通过Scrapy实现分布式爬取
redis·分布式·爬虫·http代理·学习记录
纪元A梦7 小时前
Redis最佳实践——性能优化技巧之监控与告警详解
数据库·redis·性能优化