WSL2+docker+redis 数据卷挂载部署

环境

Docker (基于WSL2)
WSL2 系统版本:Ubuntu20.04.4 LTS
已在Docker中拉取了redis最新镜像

建立数据挂载目录

tips:出于学习目的,我是在root用户下进行操作,普通用户下遇到访问受限问题请自行添加sudo前缀

先到Ubuntu的主目录下,然后去tmp文件夹下创建redis文件夹

cd tmp/
mkdir redis

在这里插入图片描述
tips:你可以指定其他位置,下文相关路径别忘记要做出相应调整。

在该目录下创建配置文件redis.conf
文件内容https://gitee.com/wangyue123com_admin/helpdocument/blob/master/package/redis.conf

再对redis.conf进行一些修改:
允许远程访问(让windows可以用redis desktop manager等工具访问redis):

bind 0.0.0.0

定义工作目录(等一下数据挂载到这个位置):

dir /usr/local/etc/redis

允许数据持久化(可选项,没需求可以不改):

appendonly yes

日志文件位置(我这里是给了一个空字符串让redis将日志打印到控制台):

logfile ""

结尾我会补充说明让redis输出文件到日志所需要做的工作

docker run 将数据挂载

docker run -d --privileged=true \
-p 6379:6379 \
-v /tmp/redis:/usr/local/etc/redis \
--name redis redis \
redis-server /usr/local/etc/redis/redis.conf \

参数说明:

-d  # 后台运行
--privileged=true # 给redis授予root权限,避免对数据卷的访问受限
-p 6379:6379 # 监听端口映射
-v /tmp/redis:/usr/local/etc/redis # 将/tmp/redis挂载为工作目录
--name redis redis # 设置容器名称和镜像
redis-server /usr/local/etc/redis/redis.conf # 指明所用的配置文件位置,根据之前的数据卷映射,真实的配置文件就是我们手动创建的那个

查看输出的日志,容器成功运行:
在这里插入图片描述

输出日志到文件的做法

情况一

在配置文件中做如下修改

logfile redis-server.log

重新启动redis后,日志会被记录在挂载的工作目录下:
在这里插入图片描述
在这里插入图片描述

情况二

还可以另外指定log目录单独挂载

比如我把log文件放这里:
在这里插入图片描述
在这里插入图片描述
修改配置文件如下:

logfile /log/redis-server.log

在创建容器的时候添加这个新目录作为挂载:

docker run -d --privileged=true \
-p 6379:6379 \
-v /tmp/redis:/usr/local/etc/redis \
-v /tmp/redis/log:/log \  # log目录挂载点
--name redis redis \
redis-server /usr/local/etc/redis/redis.conf

容器启动后可以看到日志:
在这里插入图片描述
这个时候可能会出现启动不成功,但log目录下确实出现了log文件,控制台报告Permission denied的错误
ll指令发现redis对log文件的访问权限不足,需要用chmod命令对日志文件赋予写权限。
在这里插入图片描述

cd到log目录下,执行以下命令

chmod a+xrw redis-server.log

在这里插入图片描述

Supongo que te gusta

Origin blog.csdn.net/qq_41129489/article/details/124684443
Recomendado
Clasificación