Docker安装最新Redis6(redis-6.2.7)(参考官方文档)

一、前言

  Redis官方下载地址:
  https://redis.io/download/#redis-downloads

 
  Docker Hub官方网址:
  https://hub.docker.com/

 
  【关联博客教程】

最新Docker在Centos7下安装部署(参考官方教程文档)
 
写最好的最新稳定版Redis7(redis-7.0.5)在云服务器Centos7安装部署教程(参考官方文档)
 
写最好的最新Redis6(redis-6.2.7)在云服务器Centos7安装部署教程(参考官方文档)
 
Docker安装最新稳定版Redis7(redis-7.0.5)(参考官方文档)

  本教程参考官方文档在Docker中安装最新稳定版Redis-6.2.7,官方文档有些细节没有说明,笔者因此踩了不了坑。
 
  本文由 @大白有点菜 原创,请勿盗用,转载请说明出处!如果觉得文章还不错,请点点赞,加关注,谢谢!
 

二、安装部署

1、如何查看Docker Hub中Redis最新稳定的版本

(1)浏览Docker Hub网址,即Docker的仓库,搜索关键字 redis 查找redis的版本(和官方redis的版本是同步的)。或者直接进入对应页面 https://hub.docker.com/_/redis
 
Docker Hub中查询redis版本

 
(2)点击第一个,进入到 Redis 相关页面,包括一些 版本介绍安装教程在页面的下半部分)。页面介绍中,在同一行的,例如 6.2.7, 6.2, 6, 6.2.7-bullseye, 6.2-bullseye, 6-bullseye ,其实是同一个版本。
 
点第一个
 
Redis版本在同一行的都是相同版本

 
Docker Hub官方安装Redis教程

 
(3)“Tags”标签页面列出了具体的版本,可以复制指令,手写指令的一定要加版本号(6.2.7),不然拉取的就是最新版本,即Redis7。
 
复制拉取指定版本6.2.7的Redis版本指令
 

2、创建两个目录,挂载为容器的卷(Volume),conf为配置文件目录,data为数据目录。

mkdir -p /mydata/redis/conf
mkdir -p /mydata/redis/data

创建两个目录,conf和data

 
  什么是卷(Volume)?命令 docker -v 中的“-v”就是这个卷,“-v”只是“--volume”的简写。
 
  Docker官方文档解释的含义:https://docs.docker.com/storage/volumes/
 
  来几张原文截图,并附上谷歌翻译后的截图
 
Volume1 
Volume2
 
Volume3
 
Volume4
 

3、拉取Redis-6.2.7镜像。

docker pull redis:6.2.7

拉取最新的Redis镜像

4、创建Redis容器

(1)官方文档教程并没有这一步,但有提到 redis.conf 配置文件,redis.conf 从何而来呢?笔者经过研究,解决了这个问题。先从Redis官网下载最新Redis-6.2.7的源码包,解压出来,在 redis-6.2.7 目录里面复制 redis.conf 配置文件到 /mydata/redis/conf 目录下。
 
临时下载Redis-6.2.7源码包获取redis.conf配置文件

 
 1)下载 redis-6.2.7.tar.gz 源码包。

wget https://download.redis.io/releases/redis-6.2.7.tar.gz

 2)解压 redis-6.2.7.tar.gz 。

tar -xzf redis-6.2.7.tar.gz

 3)复制 redis-6.2.7 目录下的 redis.conf/mydata/redis/conf 目录下。

cp redis-6.2.7/redis.conf /mydata/redis/conf/

 4)更改 /mydata/redis 目录下所有文件的权限为可读可写可执行。

chmod 777 -R /mydata/redis

 5)删除 redis-6.2.7.tar.gz 源码包 和 解压出来的 redis-6.2.7 程序目录。

rm -rf redis-6.2.7*

(2)创建并运行容器。容器名为 redis映射端口 6379 ,挂载配置目录 /mydata/redis/conf ,挂载数据目录 /mydata/redis/dataredis-server 以配置文件 redis.conf 启动。注意:参数 -d 后面的 redis 需要加上版本号(6.2.7)

docker run --name redis -p 6379:6379 -v /mydata/redis/conf:/usr/local/etc/redis -v /mydata/redis/data:/data -d redis:6.2.7 redis-server /usr/local/etc/redis/redis.conf

创建并运行Redis容器
 

5、运行 redis-cli 测试连接 redis-server。如图,说明Redis容器配置正确。指令 exit 代表退出连接。

docker exec -it 88c redis-cli

运行 redis-cli 测试连接 redis-server
 

6、设置容器自启动。

docker update --restart=always redis

设置容器自启动

7、容器的启动、停止、删除、重新启动、查看运行状态。

(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-confbindrequirepass 这两个参数值,缺一不可。对应的数据目录 dir 参数值也要修改。

 
RESP 连接失败 

2、修改 redis.conf 配置文件(两种方式)。

(1)编辑 redis.conf 文件。

vim /mydata/redis/conf/redis.conf

(2)方法一修改参数值。注意:6379.conf 配置文件有2053行,要找到指定参数位置不方便,可以通过行号快速跳转。要想了解如何设置显示行号和跳转,请参考教程【Linux中vim编辑文件显示行号(临时和永久两种方式)】和【Linux中vim编辑文件跳转指定的行和列】。此处有个操作小技巧:按 i 键进入到编辑模式,修改内容后,再按 Esc 键切换到正常模式,输入 ngg 跳转到第n行(n代表行号),例如跳转到第66行,即 66gg ,继续按 i 键进入到编辑模式修改下一部分内容。最后记得输入 :wq 保存并退出。

  • 行号 75 ,原内容【bind 127.0.0.1 -::1】。默认只支持 redis-cli 本地连接 redis-server ,不支持远程连接,例如第三方工可视化具 RESP(旧版叫 Redis Desktop Manager)。【支持远程连接参数值修改如下】
bind * -::*

修改75行bind参数值

  • 行号 456 ,原内容【dir ./】。【这个参数修改为要存放的数据目录】
dir /data

修改456行dir参数值

  • 行号 903 ,原内容【# requirepass foobared】。给默认用户设置密码,主要是使用 redis-cli 连接 redis-server时,需要通过密码校验。配置文件默认是注释这个参数的,代表无密码连接。使用第三方可视化工具 RESP 去连接Redis,肯定要设置Redis用户密码。此处 123456 密码过于简单,不建议这么做,很不安全。 【此处参数修改为指定的密码】
requirepass 123456

修改903行requirepass参数值

 
(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

重启容器并使用RESP连接测试
 

猜你喜欢

转载自blog.csdn.net/u014282578/article/details/128223953