Docker部署Redis
Docker部署Redis
-
准备工作
-
在CentOS或者Linux创建部署目录,用于存放容器的配置和Redis数据;目的是当重装或者升级容器时,配置文件和数据不会丢失。执行以下命令:
a、创建目录:
mkdir -p /container/redis
b、进入目录:
cd /container/redis
c、批量创建目录:
mkdir data
d、更改文件夹权限:
chmod 777 data
-
准备Redis部署配置文件:Redis各版本配置文件下载入口
a、我使用的是6.2版本,下载redis.conf文件:
curl https://raw.githubusercontent.com/redis/redis/6.2/redis.conf > /container/redis/redis.conf
b、修改redis.conf文件:
vim /container/redis/redis.conf
-
bind 127.0.0.1 通过#注释掉,解除本地连接限制
- protected-mode no 默认为yes;保护模式,限制为本地访问;修改为no,修改后解除保护模式
- requirepass redispassword 设置密码(建议设置,不设置有风险),也可以不设置,然后在docker启动命令中指定
-
-
配置文件授权:
chmod 644 /container/redis/redis.conf
踩坑备注:
- 配置文件未授权有可能导致启动失败
- 配置文件daemonize属性默认为no; 网上有说要改为yes的;改为yes会导致启动失败!docker 本身就是后台运行的,daemonize为yes两者会冲突
- 从 http://download.redis.io/redis-stable/redis.conf 这个地址下载的配置文件,有可能会启动报错:FATAL CONFIG FILE ERROR;报错的配置项举例:repl-diskless-sync-max-replicas、appenddirname等等;在2022-05-05开始(在2022-04-26时下载的配置文件还是正常的,在27号有了更新),在这个地址下载的配置文件都会多出这些配置项。我出现这个问题时使用的是redis是6.2版本;采用docker安装的。在此记录。使用上面的入口下载6.2版本的配置文件,就没有问题。个人猜测可能是因为版本升级,配置文件和版本对应不上的原因。
-
-
执行以下命令,创建并启动镜像。如果本地没镜像,会自动拉取
docker run \ -itd \ --restart=always \ --name=redis \ -p 6379:6379 \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ -v /container/redis/redis.conf:/etc/redis/redis.conf \ -v /container/redis/data:/data \ redis:latest \ redis-server /etc/redis/redis.conf \ --appendonly yes \ --requirepass "redispassword"
命令分析:
-
docker run #创建并启动应用
-
-itd #-i:开启容器的标准输入STDIN;-t:容器分配伪终端,用于再终端登录容器;-d:后台运行容器
-
--restart=always #在容器退出时总是重启容器
-
--name="redis" #容器名称
-
-p 6379:6379 #映射主机指定端口到容器的指定端口;冒号前为主机端口,冒号后为容器端口
-
-v /container/redis/data:/data #挂载主机指定目录到容器的指定目录;冒号前为主机目录;挂载的主机目录必须授权777权限
-
redis:latest #要创建并启动容器的mysql镜像
-
--appendonly yes #开启redis 持久化
-
--requirepass "redispassword" #设置密码为redispassword;当配置文件和命令行同时设置密码时,以命令行的密码为准!
脚本执行后:
查看容器信息:
docker ps -a
查看Redis启动日志:
docker logs redis
-
-
测试连接登录
此时,一般可以使用Another Redis Desktop Manager工具进行连接了;如果工具连接不上,可在终端测试连接;命令如下:
进入docker容器MySQL终端:
docker exec -it redis bash
连接Redis:
redis-cli
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人