Docker快速部署方案 ---- Redis6
Docker快速部署方案 ---- Redis6,Docker 启动 Redis6.2
学前先知
- redis-cli --raw,可以在shell中进行查询(如get)操作时正常显示中文;
- client list,(redis-cli认证后)查看所有已连接客户端信息;
- redis事务中
WATCH
关键字必须在MULTI
前使用,且监听字段必须在另一个客户端被修改事务才会无法执行,当前客户端中(MULTI
和EXEC
之间)则不会;
1. 拉取镜像
docker pull redis:6.2.11
2. 创建挂载目录
mkdir -p /opt/docker/redis/{conf,data}
3. 创建配置redis.conf
vim /opt/docker/redis/conf/redis.conf
# 源文件可以从官网获得,修改启动默认配置(从上至下依次):
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no #默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
4. 启动容器
docker run --name redis6 \
--privileged=true \
-p 6379:6379 \
-v /opt/docker/redis/conf/redis.conf:/redis.conf \
-v /opt/docker/redis/data:/data \
-d redis:6.2.11 \
redis-server /redis.conf \
--appendonly yes \
--requirepass "123456"
参数解释
--privileged=true -> 使container内的root拥有真正的root权限。否则只是外部的一个普通用户权限
-d -> 后台运行
-p -> 端口映射到主机的端口
-v -> 将主机目录挂载到容器的目录
redis-server /redis.conf -> 在容器执行以redis.conf启动redis-server
--appendonly yes -> 打开redis持久化配置
–-requirepass "123456" -> 设置密码
5. 连接客户端
-
天坑!客户端报错——Failed to authenticate, please check the username or password.
-
错误原因——Redis在某个版本(我不清楚)更新了一个东西:当设置密码后,用户名不再是root,会有一个默认的用户名:default !
-
解决办法——使用 default 作为客户端登录用户名,输入正确密码即可成功解决问题。