1、拉取Redis镜像
docker pull redis:7
docker tag redis:7 redis7
docker rmi redis:7
2、创建宿主机mac和容器的共享目录
# 创建redis数据存储目录在宿主机mac上的映射目录
mkdir -p /Users/SH-Server/docker-sync-data/redis/data/logs
# 创建日志文件
touch /Users/SH-Server/docker-sync-data/redis/data/logs/notice.log
3、编辑redis.conf
# 创建redis.conf 在宿主机mac上的映射文件
cd /Users/SH-Server/docker-sync-data/redis
vi redis.conf
# 密码
requirepass 123456789
# 设置日志级别
loglevel notice
# 日志地址
logfile /data/logs/notice.log
# 设置允许所有ip来连接
bind 0.0.0.0
# 设置端口号
port 6379
# 数据库数量
databases 20
# 设置最大内存
maxmemory 8G
# 当达到最大内存时,采用的清除策略
maxmemory-policy volatile-lru
# 检测客户端健康状态 300秒
tcp-keepalive 300
# 是否以守护进程方式启动,不
daemonize no
# 持久化文件保存路径
dir /data
# rdb数据持久化触发条件:300 秒内如果至少有 10 个 key 的值变化,则进行持久化
save 300 10
# rdb快照文件名
dbfilename dump.rdb
# 开启aof数据持久化
appendonly yes
# aof数据持久化文件名称
appendfilename appendonly.aof
# aof数据持久化策略,每秒
appendfsync everysec
#加载由于某些原因导致的末尾异常的AOF文件(主进程被kill/断电等)
aof-load-truncated yes
# 开启RDB-AOF混合持久化格式
aof-use-rdb-preamble yes
# 当Aof log增长超过指定百分比例时,重写AOF文件
auto-aof-rewrite-percentage 100
4、创建容器
docker run -itd --name redis7.0 -p 6379:6379 -v /Users/SH-Server/docker-sync-data/redis/redis.conf:/etc/redis/redis.conf -v /Users/SH-Server/docker-sync-data/redis/data:/data redis7 redis-server /etc/redis/redis.conf
这里创建容器时,进行了宿主机mac和redis容器内部的文件及目录映射。