docker启动redis

1、拉取redis

1
docker pull redis:latest

当前最新版本为7.2.4

2、创建挂载目录

1
2
mkdir /home/wzd/redis
mkdir /home/wzd/redis/data

3、下载 redis.conf 文件

1
wget http://download.redis.io/redis-stable/redis.conf

注意:配置文件的版本需要和 redis 的版本对应,当前 redis 版本为7.2.4,配置文件的版本也应该为7.2.x,文件地址:

https://redis.io/docs/latest/operate/oss_and_stack/management/config/

4、设置权限

1
chmod 777 redis.conf

5、设置默认配置信息

1
vi /home/wzd/redis/redis.conf
1
2
3
4
5
bind 127.0.0.1 # 这行要注释掉,解除本地连接限制
protected-mode no # 默认yes,如果设置为yes,则只允许在本机的回环连接,其他机器无法连接。
daemonize no # 默认no 为不守护进程模式,docker部署不需要改为yes,docker run -d本身就是后台启动,不然会冲突
requirepass 123456 # 设置密码
appendonly yes # 持久化

6、docker 启动 redis

1
2
3
4
5
6
7
8
9
10
11
docker run \
-itd \
--name redis7.2.4 \
--privileged=true \
-p 6379:6379 \
-v /home/wzd/redis/redis.conf:/etc/redis/redis.conf \
-v /home/wzd/redis/data:/data \
redis:latest \
redis-server /etc/redis/redis.conf \
--appendonly yes \
--requirepass 123456

参数说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run
-itd
-d 在后台运行容器,并且打印容器id。
-i 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。
-t 分配一个伪tty,一般与 -i 连用。
--name redis7.2.4 容器名字
--privileged=true 容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-p 6379:6379 把容器内的6379端口映射到宿主机6379端口
-v /home/wzd/redis/redis.conf:/etc/redis/redis.conf 把宿主机配置好的redis.conf放到容器内的这个位置中(文件)
-v /home/wzd/redis/data:/data 把redis持久化的数据在宿主机内显示,做数据备份
redis:latest 镜像名字
redis-server /etc/redis/redis.conf 这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的 配置启动
--appendonly yes 开启数据持久化
--requirepass 123456 密码

注意:启动 redis 需要添加 –privileged=true 命令,否则无法启动

7、在 docker 中打开 redis 客户端

1、首先交互方式进入 redis 容器

1
docker exec -it [容器ID] /bin/bash

2、随后运行客户端

1
redis-cli

3、执行客户端命令

1
2
127.0.0.1:6379> get keys
(error) NOAUTH Authentication required.

出现该情况,输入密码即可

1
2
3
auth '123456'
auth 123456
#两种命令都可以