本文主要讲解如何基于redis官方镜像构建一个redis镜像,构建后的镜像支持自定义redis配置文件,并在镜像中加入了curl和bash基础命令。最后,还会简要讲解使用该镜像。
Dockerfile:
FROM redis:7.0.15-alpine3.20 # install tools RUN apk add curl --no-cache &&\ apk add bash --no-cache
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf"]
redis.conf:
# Redis 配置文件示例
################################## INCLUDES ###################################
如果你的 Redis 实例使用 include 配置来引入其他文件,请确保这些文件存在
include /path/to/local.conf
include /path/to/other.conf
################################## MODULES ####################################
如果你在编译时加载了模块,请在这里引入它们
################################## NETWORK ####################################
绑定的 IP 地址
bind 127.0.0.1
端口号
port 6379
TCP-backlog
tcp-backlog 511
网络超时时间(秒)
timeout 0
日志级别
loglevel notice
通信协议(tcp 或者 unix)
默认值为 tcp
unixsocket /tmp/redis.sock
unixsocketperm 700
################################# GENERAL #####################################
密码认证
requirepass foobared
服务器标识(用于统计)
servername redis_server_1
守护进程模式
daemonize no
数据目录
dir /var/lib/redis
RDB 文件名
dbfilename dump.rdb
持久化策略
save 900 1
save 300 10
save 60 10000是否开启 AOF
appendonly yes
AOF 文件名
appendfilename "appendonly.aof"
AOF 同步策略
appendfsync everysec
AOF 自动重写缩减
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb是否开启集群模式
cluster-enabled no
慢查询日志阈值(单位微秒)
slowlog-log-slower-than 10000
客户端输出缓冲区长度
client-output-buffer-limit normal 0 0 0
设置最大客户端连接数
maxclients 10000
设置允许的最大内存使用量
maxmemory 4gb
设置内存使用达到最大时的处理策略
maxmemory-policy volatile-lru
设置是否开启了压缩
rdbcompression yes
设置是否开启了哨兵
sentinel false
构建镜像:
docker build -t redis:v7.0.15 . -f Dockerfile
运行:
docker run --name myredis7 -p 6379:6379 -d redis:v7.0.15
查看容器:
docker ps |grep myredis
进入容器:
docker exec -it b8c8ba64955b bash
连接并使用redis:
redis-cli -h 127.0.0.1 -p 6379
redis官方镜像地址: