参考地址:
一、拉取官方的镜像
1.1、拉取官方的镜像
$ docker pull redis:6.0.9-alpine3.12
1.2、简单启动 redis
$ docker run --name some-redis -d redis:6.0.9-alpine3.12
1.3、持久化存储
如果启用了持久性,数据将存储在VOLUME /data
中,可与-v /docker/host/dir:/data
一起使用(请参阅docs.docker卷)。
# 创建用于存放redis数据的目录
$ mkdir -p /opt/redis/data
# 启动容器并指定卷
$ docker run \
-v /opt/redis/data:/data \
--name redis -d redis:6.0.9-alpine3.12 redis-server --appendonly yes
1.4、启动 redis-cli
redis
为 容器的名称
$ docker exec -it redis redis-cli
1.5、自定义配置文件
您可以创建自己的Dockerfile,将上下文中的 redis.conf
添加到 /data/
中,如下所示。
FROM redis:6.0.9-alpine3.12
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
或者,你也可以用docker run options
来指定一些相同的东西。
注意配置文件中 daemonize=NO
(非后台模式),如果为 YES
会导致 redis
无法启动,因为后台会导致docker无任务可做而退出。
如果想要远程访问的话,绑定的ip请修改为:0.0.0.0
# 创建用于存放配置文件的目录
$ mkdir -p /opt/redis/conf
# 创建配置文件
$ touch redis.conf && cat >> redis.conf <<EOF
#绑定主机IP,默认值为127.0.0.1
bind 0.0.0.0
#Redis默认监听端口
port 6379
#客户端闲置多少秒后,断开连接,默认为300(秒)
timeout 300
#日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
loglevel verbose
#可用数据库数,默认值为16,默认数据库为0
databases 16
#保存数据到disk的策略
#当有一条Keys数据被改变是,900秒刷新到disk一次
save 900 1
#当有10条Keys数据被改变时,300秒刷新到disk一次
save 300 10
#当有1w条keys数据被改变时,60秒刷新到disk一次
save 60 10000
#当dump.rdb数据库的时候是否压缩数据对象
rdbcompression yes
#本地数据库文件名,默认值为dump.rdb
dbfilename dump.rdb
# 设置的密码
requirepass gxkj123
EOF
$ docker run \
-v /opt/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /opt/redis/data:/data \
-p 6379:6379 \
--name myredis -d redis:6.0.9-alpine3.12 \
redis-server /etc/redis/redis.conf
如果可以的话尽量将原始的配置文件修改部分配置作为docker redis的配置信息