一、前言
Redis官方下载地址:
https://redis.io/download/#redis-downloads
Docker Hub官方网址:
https://hub.docker/
如需了解Centos7下Docker的安装部署,可参考教程【最新Docker在Centos7下安装部署(参考官方教程文档)】。
如需了解云服务器Centos7下最新稳定版Redis7的安装部署,可参考教程【写最好的最新稳定版Redis7(redis-7.0.5)在云服务器Centos7安装部署教程(参考官方文档)】。
本教程参考官方文档在Docker中安装最新稳定版Redis-7.0.5,官方文档有些细节没有说明,笔者因此踩了不了坑。
本文由 @大白有点菜 原创,请勿盗用,转载请说明出处!如果觉得文章还不错,请点点赞,加关注,谢谢!
二、安装部署
1、如何查看Docker Hub中Redis最新稳定的版本
(1)浏览Docker Hub网址,即Docker的仓库,搜索关键字 redis 查找redis的版本(和官方redis的版本是同步的)。或者直接进入对应页面 https://hub.docker/_/redis
(2)点击第一个,进入到 Redis 相关页面,包括一些 版本介绍
和 安装教程
(在页面的下半部分)。页面介绍中,在同一行的,例如 7.0.5, 7.0, 7, latest, 7.0.5-bullseye, 7.0-bullseye, 7-bullseye, bullseye ,其实是同一个版本。
(3)“Tags”标签页面列出了具体的版本,可以拉取对应的版本。
2、创建两个目录,挂载为容器的卷(Volume),conf为配置文件目录,data为数据目录。
mkdir -p /mydata/redis/conf
mkdir -p /mydata/redis/data
什么是卷(Volume)?命令 docker -v
中的“-v
”就是这个卷,“-v
”只是“--volume
”的简写。
Docker官方文档解释卷
的含义:https://docs.docker/storage/volumes/
来几张原文截图
,并附上谷歌翻译后的截图
:
4、拉取最新的Redis镜像。
docker pull redis
4、创建Redis容器
(1)官方文档教程并没有这一步,但有提到 redis.conf 配置文件,redis.conf 从何而来呢?
笔者经过研究,解决了这个问题。先从Redis官网下载最新稳定版Redis的源码包,解压出来,在 redis-stable 目录里面复制 redis.conf 配置文件到 /mydata/redis/conf 目录下。
1)下载 redis-stable.tar.gz 源码包。
wget https://download.redis.io/redis-stable.tar.gz
2)解压 redis-stable.tar.gz 。
tar -xzf redis-stable.tar.gz
3)复制 redis-stable
目录下的 redis.conf
到 /mydata/redis/conf
目录下。
cp redis-stable/redis.conf /mydata/redis/conf/
4)更改 /mydata/redis 目录下所有文件的权限为可读可写可执行。
chmod 777 -R /mydata/redis
5)删除 redis-stable.tar.gz 源码包 和 解压出来的 redis-stable 程序目录。
rm -rf redis-stable*
(2)创建并运行容器。容器名为 redis
,映射端口 6379
,挂载配置目录 /mydata/redis/conf
,挂载数据目录 /mydata/redis/data
,redis-server
以配置文件 redis.conf
启动。
docker run --name redis -p 6379:6379 -v /mydata/redis/conf:/usr/local/etc/redis -v /mydata/redis/data:/data -d redis redis-server /usr/local/etc/redis/redis.conf
5、运行 redis-cli 测试连接 redis-server。如图,说明Redis容器配置正确。
docker exec -it 13c redis-cli
6、设置容器自启动。
docker update --restart=always redis
6、容器的启动、停止、删除、重新启动、查看运行状态。
(1)启动容器
docker start redis
或
docker start 容器ID
(2)停止容器
docker stop redis
或
docker stop 容器ID
(3)删除容器
docker rm redis
或
docker rm 容器ID
(4)重新启动容器
docker restart redis
或
docker restart 容器ID
(5)查看容器运行状态
- 查看所有容器的运行状态,
包括运行的和停止的
:
docker ps -a
- 查看所有运行中的容器的状态,
不包括停止的
:
docker ps
三、配置修改
1、前面使用 redis-cli 去连接 redis-server,是能正常连接的,但是,使用第三方可视化工具 RESP
(旧版叫 Redis Desktop Manager
),却无法远程连接,为什么会这样子呢?因为,Redis默认只允许本地连接,经过笔者验证,如果要远程连接,就需要同时修改配置文件 redis-conf
的 bind
和 requirepass
这两个参数值,缺一不可。对应的数据目录 dir
参数值也要修改。
2、修改 redis.conf 配置文件(两种方式)。
(1)编辑 redis.conf 文件。
vim /mydata/redis/conf/redis.conf
(2)方法一修改参数值。注意
:6379.conf 配置文件有2276行,要找到指定参数位置不方便,可以通过行号快速跳转。要想了解如何设置显示行号和跳转,请参考教程【Linux中vim编辑文件显示行号(临时和永久两种方式)】和【Linux中vim编辑文件跳转指定的行和列】。此处有个操作小技巧
:按 i
键进入到编辑模式,修改内容后,再按 Esc
键切换到正常模式,输入 ngg
跳转到第n行(n代表行号
),例如跳转到第66行,即 66gg ,继续按 i 键进入到编辑模式修改下一部分内容。最后记得输入 :wq
保存并退出。
行号 87
,原内容【bind 127.0.0.1 -::1】。默认只支持 redis-cli 本地连接 redis-server ,不支持远程连接,例如第三方工可视化具 RESP(旧版叫 Redis Desktop Manager)。【支持远程连接参数值修改如下】
。
bind * -::*
行号 504
,原内容【dir ./】。【这个参数修改为要存放的数据目录】
。
dir /data
行号 1036
,原内容【# requirepass foobared】。给默认用户设置密码,主要是使用 redis-cli 连接 redis-server时,需要通过密码校验。配置文件默认是注释这个参数的,代表无密码连接。使用第三方可视化工具 RESP 去连接Redis,肯定要设置Redis用户密码。此处 123456 密码过于简单,不建议这么做,很不安全。【此处参数修改为指定的密码】
。
requirepass 123456
(3)方法二修改参数值。使用sed替换配置文件 /mydata/redis/conf/redis.conf
中参数默认的值。反斜杠“\
”代表转义符,即将某些特殊字符转义。
sed -i 's/bind 127.0.0.1 -::1/bind * -::*/' /mydata/redis/conf/redis.conf
sed -i 's/dir \.\//dir \/data/' /mydata/redis/conf/redis.conf
sed -i 's/\# requirepass foobared/requirepass 123456/' /mydata/redis/conf/redis.conf
3、重启容器并使用RESP连接测试。
docker restart redis
更多推荐
Docker安装最新稳定版Redis7(redis-7.0.5)(参考官方文档)
发布评论