拉取 redis 镜像
拉取 redis 镜像,获取当前最新的 Stable (7.2):docker pull redis:7.2.0
Redis 相关的配置
- 创建挂载目录以及获取 redis.conf 配置文件
创建挂载目录
1
mkdir -p /opt/docker/redis
配置文件挂载
1
2cd /opt/docker/redis
wget http://download.redis.io/redis-stable/redis.conf修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 这行要注释掉,解除本地连接限制
bind 127.0.0.1 --> 需要注释掉
# 保护模式是一层安全保护,以避免在互联网上打开的 Redis 实例被访问和利用。
# 当保护模式打开并且默认用户没有密码时,服务器仅允许在本机的回环连接,其他机器无法连接。
# 默认为 yes,在生产环境下一般设置为 no,这样可以避免客户端连接时出现超时或连接不上的情况。
protected-mode no
# 默认 no 为不守护进程模式,docker 部署不需要改为 yes,docker run -d 本身就是后台启动,不然会冲突
daemonize no
# 设置密码
requirepass yourPassword
# 持久化
appendonly no # 目前所有缓存都不需要持久化通过
docker run
命令运行 redis 镜像1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39docker ps -a | grep redis
docker stop redis
docker rm redis
docker run \
-p 6379:6379 \
--name redis \
--restart=always \
--privileged=true \
-v /opt/docker/redis/redis.conf:/etc/redis/redis.conf \
-e TZ=Asia/Shanghai \
-d redis:7.2.0 \
redis-server /etc/redis/redis.conf
docker logs redis
root@600884db5654:/etc# date
Mon Sep 4 10:04:00 CST 2023
# 不设置时区
docker rm redis
docker run --name redis -p 6379:6379 \
-v /opt/docker/redis/redis.conf:/etc/redis/redis.conf \
-d redis:7.2.0 \
redis-server /etc/redis/redis.conf
root@c786b9927e14:/data# date
Mon Sep 4 02:09:14 UTC 2023
# 进入容器
docker exec -it redis /bin/bash
# 或额外添加 privileged 配置
docker run --name redis -p 6379:6379 \
--privileged=true \
-v /opt/docker/redis/redis.conf:/etc/redis/redis.conf \
-d redis:7.2.0 \
redis-server /etc/redis/redis.conf
命令说明
--name redis
为容器指定一个名称,查看和进行操作都比较方便。-p 6379:6379
指定端口映射,格式为:主机(宿主)端口:容器端口--privileged=true
开启特殊权限-e "TZ=Asia/Shanghai"
设置时区Docker 挂载主机目录时(添加容器数据卷),如果 Docker 访问出现 cannot open directory:Permission denied,在挂载目录的命令后多加一个
--privileged=true
参数即可。- 因为出于安全原因,容器不允许访问任何设备,privileged 让 docker 应用容器获取宿主机 root 权限(特殊权限),允许我们的 Docker 容器访问连接到主机的所有设备。容器获得所有能力,可以访问主机的所有设备,例如,CD-ROM、闪存驱动器、连接到主机的硬盘驱动器等。
-v
挂载文件或目录:前面是宿主机部分,后面是容器部分-d redis
表示后台启动 redis;使用此方式启动,则 redis.conf 中 daemonize 必须设置为 no,否则会无法启动redis-server /etc/redis/redis.conf
在容器内启动 redis-server 的命令,用于加载容器内的 conf 文件,最终找到的是挂载的目录/docker/redis/redis.conf
--appendonly yes
开启 redis 持久化--restart=always
主机重启后自动重启该容器镜像
查看 redis
docker ps -a --no-trunc | grep redis
- 启动容器后,可以使用docker exec命令进入到容器内部,执行相关操作:
docker exec -it redis /bin/bash
- 查看启动情况:
docker logs redis
- 登录时直接输入密码:
redis-cli -a yourPassword
,提示bash: !d: event not found
,用下面的方式认证可行。 - 分两步登录认证:
redis-cli
,然后auth password
,password 为实际密码
1 | root@56014ab3d6c0:/data# redis-cli |
操作 redis
1 | docker ps -a | grep redis |
进入 docker
1 | docker exec -it redis /bin/bash |