安装
拉取镜像(以Redis最新版本为例)
docker pull redis
查看已拉取到本地的镜像
docker image ls
运行镜像(开启容器)
docker run --name my_redis -d -p 6379:6379 redis
redis_container_name是容器名称,6379为端口号,均可自行设置
测试
进入容器
docker exec -ti my-redis bash
配置Redis持久化
场景
使用Docker拉取的Redis,从docker中启动redis容器,默认是没有配置文件的
持久化
- RDB:按照一定的时间间隔定时以快照的形式保存,也可主动触发
- AOF:以记录日志的方式进行保存
- Redis持久化方式,目前有RDB和AOF,默认的是RDB,具体每种的保存/实现/触发机制,以及优缺点,自行百度。
准备
- 去官网Redis中下载redis.conf的配置文件。
我先提供一份给大家(目前最新的,页面首部),后期可能官网会更新。 - 创建文件夹/Users/williamjackson/docker/redis和/Users/williamjackson/docker/redis/data用来存放数据(可以是其他位置,/Users/williamjackson笔者Mac上的用户目录,等价于~目录,读者自行调整目录)
- 将redis.conf放到/Users/williamjackson/docker/redis目录下
配置文件修改
注释掉bind,不然只能安装Redis本机访问
#bind 127.0.0.1
开启AOF持久化
appendonly yes
写入机制
#每次有修改就立刻写入
# appendfsync always
#每秒钟写入一次(推荐该方式)
appendfsync everysec
#让Redis自动判断
# appendfsync no
保存文件的名字,默认即可
appendfilename "appendonly.aof"
保存数据的位置
#当前目录,可选择其他目录
dir ./
配置连接密码
requirepass pwd1234
运行容器
docker run --restart=always -p 6379:6379 --name my-redis \
-v /Users/williamjackson/docker/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/williamjackson/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
参数说明
docker run:运行Docker镜像
–restart=always:当docker重启时,该容器也会重新启动
-p:映射端口号,宿主机端口映射到容器内部端口
–appendonly yes:持久化
–name redis:设置容器名称为redis
-v /Users/williamjackson/docker/redis/redis.conf:/etc/redis/redis.conf:将宿主机中redis.conf文件映射到docker中
-v /Users/williamjackson/docker/redis/data:/data:将容器的/data目录挂载到宿主机的/Users/williamjackson/docker/redis/data目录(数据持久化)
-d redis:6.2.12:选择运行的Docker镜像并指定Tag(不指定的话默认是latest)
redis-server /etc/redis/redis.conf:以加载配置文件方式启动
测试
运行过之后,重启Redis服务,将会在/Users/williamjackson/docker/redis/data文件夹中生成保存的文件