Docker快速安装并配置Redis

前言

docker容器化安装的好处就是可以几条命令快速安装,可以在同一个linux同时运行多个Redis,相互之间不会影响。配置坏了,轻松删除容器,重新运行容器。

安装Docker和Docker的基础操作详解:https://blog.csdn.net/qq_43290318/article/details/107743188

1、拉取最新镜像

中心仓库:https://hub.docker.com/

我拉取的最新镜像的版本号是: 6.0.9

# 拉取最新的镜像
docker pull redis

# 查看所有镜像
docker images

# 删除某个镜像。其中 -f 表示强制删除
docker rmi -f 镜像名/id

4、去官网下载对应版本的配置文件

Redis官网:https://redis.io/

由于Docker运行的Redis容器里面并没有找到配置文件redis.conf,所以我们需要从官网下载对应版本的Redis压缩包,然后将redis.conf传到我们的Linux上。

3、运行Redis容器

完整命令:

docker run --privileged=true -v /data/redis/redis.conf:/usr/local/bin/redis.conf -v /data/redis/data:/data -p 6379:6379 --name redis01 -d redis redis-server /usr/local/bin/redis.conf

参数解析:

1、--privileged=true :加了这个参数,容器内的root拥有真正的root权限。这里加上,下面需要测试。一般我也建议加上

2、-p 6379:6379 :宿主机和容器的端口映射,这里直接都采用Redis默认的监听端口

3、--name redis01: 为容器取名为redis01

4、-d:后台运行容器,并返回容器的完整id(即启动守护式容器)

由于运行Redis容器后,它启动一个日志进程,所以这里的 -d,无需搭配 -it 使用。如果想理解清楚,请参看 前言 中的博客。

5、-v /data/redis/redis.conf:/usr/local/bin/redis.conf -v /data/redis/data:/data

挂载Redis的配置文件和数据目录。冒号左边是宿主机目录,冒号右边是容器内部路径!

(1)如果不挂载配置文件,我们要修改Redis容器的配置,需要将配置文件从宿主机复制到Redis容器内部,然后进入容器内部修改配置文件,而Redis容器内并没有vim这些文本编辑器,虽然可以安装但是有点麻烦。

(2)那我们怎么知道Redis容器里面的配置文件和核心文件放在哪?所以,我们可以随便 docker run 一个Redis容器,然后进入到里面看看,了解一下大概的目录结构。在容器内部的 /usr/local/bin 下面我们看到了熟悉的 redis-cli 和 redis-server,但是并没有找到 配置文件 redis.conf (下图是我挂载之后才有的,原本没有的)。

为了证实容器内,确实没有 redis.conf 。我们可以通过命令进行全盘搜索:

# 进入redis03容器内部,并返回一个终端
# 它与 docker attach 有什么区别,请参看 前言 中的博客
docker exec -it redis03 /bin/bash

# 全盘搜索redis.conf
find / -name 'redis.conf'

 注意,如果一开始运行容器时没有加上--privileged=true参数,那么搜索时被有些目录拒绝访问,因为不够权限。

查看容器redis01的日志:docker logs redis01

4、修改宿主机中的redis.conf

配置文件详解:https://www.cnblogs.com/metu/p/9609604.html

在这里我们只需要修改以下参数就够了:

bind 127.0.0.1        # 注释掉这部分,这是限制redis只能本地访问

protected-mode no        # 默认yes,开启保护模式会限制为本地访问

port 6379        # redis监听的端口号

daemonize no        # 默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败

databases 16        # 数据库个数(可选),可以改改看,看看能不能生效

appendonly yes        # redis持久化(可选)

requirepass ***        # 连接时需要输入的密码

5、重新启动容器让配置生效

修改并保存了宿主机中的redis.conf。我们验证一下,此时运行中的容器内部的redis.conf是否也同时被修改了?

# 进入容器
docker exec -it redis01 /bin/bash

# 查看配置文件的密码是否已修改
cat /usr/lcoal/bin/redis.conf | grep 'requirepass'

应该看到我们修改的密码并没有生效。此时我们需要退出容器,并重启容器

docker restart redis01

此时,我们再去查看容器内的配置文件,发现生效了。

6、使用RedisDesktopManager远程连接

RedisDesktopManager现在收费了。我在网上找到了一个RedisDesktopManager的修改版,体验更好。https://github.com/qishibo/AnotherRedisDesktopManager/releases

注意,如果是连接云服务器上的Redis,不要忘了在安全组中开放Redis的监听端口。

猜你喜欢

转载自blog.csdn.net/qq_43290318/article/details/109478032