赞
踩
可以去docker hub中查找一下https://hub.docker.com/_/redis?tab=tags是否有自己需要的版本,复制命令行拉取镜像。
或者使用docker search redis
查询自己需要的版本
下载Redis镜像 (此命令等同于 : docker pull redis:latest )
docker pull redis
下载指定版本的Redis镜像 (xxx指具体版本号)
docker pull redis:xxx
使用docker images
查看镜像
可以把redis的一些配置文件存放在/redis/conf目录下,然后在/redis目录下创建一个/data目录,方便后期管理。
创建目录
mkdir -p /redis/data
mkdir -p /redis/conf
创建文件
cd /redis/conf
touch redis.conf
参数说明:
docker run \
-d \
--name redis \
-p 6379:6379 \
--restart unless-stopped \
-v /redis/data:/data \
-v /redis/conf/redis.conf:/etc/redis/redis.conf \
redis:latest \
redis-server /etc/redis/redis.conf
--appendonly yes
命令 | 描述 |
---|---|
-d | 容器在后台运行,并返回容器 ID。 |
–name redis | 为容器命名为 “redis”,方便以后管理。 |
-p 6379:6379 | 将主机的 6379 端口映射到容器的 6379 端口,这意味着可以通过访问主机的 6379 端口来访问容器内的 Redis 服务器。 |
–restart unless-stopped | 容器在退出后会自动重启,除非手动停止。 |
-v /redis/data:/data | 将主机的 /redis/data 目录挂载到容器的 /data 目录,这意味着 Redis 服务器的数据会保存在主机的 /redis/data 目录中。 |
-v /redis/conf/redis.conf:/etc/redis/redis.conf | 将主机的 /redis/conf/redis.conf 文件挂载到容器的 /etc/redis/redis.conf 文件,这意味着容器内的 Redis 服务器会使用主机上的配置文件。 |
redis:latest | 指定要运行的镜像是 “redis:latest”,即官方的 Redis 镜像的最新版本。 |
redis-server /etc/redis/redis.conf | 这是在容器内执行的命令,用于启动 Redis 服务器,并指定使用 /etc/redis/redis.conf 配置文件。 |
–appendonly yes | 开启 AOF 持久化模式。这意味着 Redis 服务器会将所有写入操作记录到一个名为 appendonly.aof 的文件中,即使服务器意外重启,也可以通过读取这个文件来恢复数据。 |
\ | shell 命令换行 |
本次执行命令:
docker run --restart=always \
-p 6379:6379 \
--name redis \
-v /redis/conf/redis.conf:/etc/redis/redis.conf \
-v /redis/data:/data \
-d redis:latest redis-server /etc/redis/redis.conf
查看正在运行的容器
docker ps
查看所有的docker容器
docker ps -a
显示up状态,启动成功。
docker日志查看
docker logs redis
通过docker进入reids客户端
docker exec -it redis redis-cli
此时redis可以正常使用了,但是还存在问题,redis缓存没有持久化,重新启动redis就会发现没有数据。
重新启动redis
docker restart redis
然后运行docker exec -it redis redis-cli
,去获取 get a 的值,发现a的值不存在。
进入redis.conf配置文件
vi /redis/conf/redis.conf
修改配置文件
i 进入编辑模式
输入 “appendonly yes”,让redis使用AOF的持久化方式。
Esc 退出编辑模式
:wq 保存并退出
参数说明
命令 | 功能 |
---|---|
appendonly yes | 启动Redis持久化功能 (默认 no , 所有信息都存储在内存 [重启丢失] 。 设置为 yes , 将存储在硬盘 [重启还在]) |
protected-mode no | 关闭protected-mode模式,此时外部网络可以直接访问 (docker貌似自动开启了) |
bind 0.0.0.0 | 设置所有IP都可以访问 (docker貌似自动开启了) |
requirepass 密码 | 设置密码 |
重启redis
docker restart redis
测试redis是否持久化成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。