- 安装 redis
docker pull redis
安装后可以执行 docker images
指令查看是否安装成功。
truedei@truedei:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 987b78fc9e38 10 days ago 104MB
httpd latest a8a9cbaadb0c 2 weeks ago 166MB
fjudith/draw.io latest 7b136fc80d31 3 weeks ago 683MB
mysql 5.7.29 f5829c0eee9e 5 weeks ago 455MB
- 准备 redis 配置文件
因为需要 redis 的配置文件,这里最好还是去redis的官方去下载一个 redis 使用里面的配置文件即可。
下载稳定版:
下载完成后,解压出来,其中的 redis.conf 就是我们需要的。
打开这个配置文件,将其中的部分配置做一些更改(仅展示更改后的):
# bind 127.0.0.1
# 注释掉这部分,使 redis 可以外部访问
daemonize no
# 不使用守护线程的方式启动,据说 docker 中会报错
requirepass 你的密码
# 给 redis 设置密码(必须!否则很容易被黑)
protected-mode yes
# 开启保护模式,在此模式下需配置bind ip或者设置访问密码
appendonly yes
# 开启 redis 持久化
- 放置 redis.conf
任意选择一个合适的目录存放 redis.conf ,这里我选择在 root 目录下建立一个 redis 文件夹,里面放这个配置文件。
这里我使用的可视化工具 WinSCP 操作,大家可以自行下载。
注意:要清楚 redis.conf 文件放到那个文件夹了
- 启动 docker 容器
控制台中执行以下指令:
docker run -p 6379:6379 --name redis -v /redis/redis.conf:/etc/redis/redis.conf -v /redis:/data -d redis redis-server /etc/redis/redis.conf
参数解析:
-p 6379:6379
把容器内的 6379 端口映射到宿主机 6379 端口
--name redis
给容器命名,这里就叫做 redis
-v /redis/redis.conf:/etc/redis/redis.conf
把宿主机放置好的 redis.conf 挂载到容器内的这个位置中,这样docker 容器中就可以拿到 redis.conf 这个配置文件了
-v /redis/data:/data
把 redis 持久化的数据挂载到宿主机,做数据备份
redis-server /etc/redis/redis.conf
这个是关键配置,让 redis 以我们的 redis.conf 配置文件启动
- 检查是否正确安装和运行
-
查看是否启动成功
docker ps
[root@xxx blog_api]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 76b3af6bdfa7 redis "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:6379->6379/tcp redis
-
查看 redis 容器日志
docker logs redis
redis 为容器名称[root@xxx data]# docker logs redis 1:C 27 Jul 2021 00:44:17.350 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1:C 27 Jul 2021 00:44:17.350 # Redis version=6.2.5, bits=64, commit=00000000, modified=0, pid=1, just started 1:C 27 Jul 2021 00:44:17.350 # Configuration loaded 1:M 27 Jul 2021 00:44:17.350 * monotonic clock: POSIX clock_gettime _._ _.-``__ ''-._ _.-`` `. `_. ''-._ Redis 6.2.5 (00000000/0) 64 bit .-`` .-```. ```\/ _.,_ ''-._ ( ' , .-` | `, ) Running in standalone mode |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 | `-._ `._ / _.-' | PID: 1 `-._ `-._ `-./ _.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | https://redis.io `-._ `-._`-.__.-'_.-' _.-' |`-._`-._ `-.__.-' _.-'_.-'| | `-._`-._ _.-'_.-' | `-._ `-._`-.__.-'_.-' _.-' `-._ `-.__.-' _.-' `-._ _.-' `-.__.-' 1:M 27 Jul 2021 00:44:17.351 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 1:M 27 Jul 2021 00:44:17.351 # Server initialized 1:M 27 Jul 2021 00:44:17.352 * Ready to accept connections
-
检查是否以 redis.conf 配置文件运行
docker exec -it redis redis-cli
进入 redis 控制台随意做一个操作,比如
set name tom
,如果需要认证,则成功以 redis.conf 配置文件运行。