1.dockerfile-redis构建镜像
FROM centos:latest
RUN yum install make wget curl unzip iproute net-tools gcc libgcc gcc-c++ glibc-devel -y &&\
yum clean all && \
rm -rf /var/cache/yum/*RUN \
cd /tmp && \
wget http://download.redis.io/redis-stable.tar.gz && \
tar xvzf redis-stable.tar.gz && \
cd redis-stable && \
make && \
make install && \
mkdir -p /etc/redis && mkdir -p /var/log/redis && mkdir -p /var/run/redis && \
cp -f .conf /etc/redis && \
rm -rf /tmp/redis-stable &&
ls -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
WORKDIR /etc/redis
CMD ["redis-server", "/etc/redis/redis.conf"]
EXPOSE 6379
2.在需要安装redis的服务器上拉取镜像
docker pull xx.xx.xx.xx/library/redis:v2
3.创建redis的目录
mkdir /opt/redis
持久化数据目录:mkdir -p /opt/redis/data
redis 配置文件:/opt/redis/redis.conf
redis.conf参考:redis.conf
daemonize yes
bind 0.0.0.0
#bind 10.10.10.161
port 6379
logfile "/var/log/redis/redis.log"
pidfile "/var/run/redis/redis.pid"
appendonly yes
appendfilename appendonly.aof
appendfsync everysec
timeout 300
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dir "/data"
dbfilename dump.rdb
requirepass 123456
maxclients 128
#默认单位为微秒,即10ms
slowlog-log-slower-than 10000
#慢查询最大的条数,当slowlog超过设定的最大值后,会将最早的slowlog删除,是个FIFO队列
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
#如果Hash中字段的数量小于参数值,Redis将对该Key的Hash Value采用特殊编码。
hash-max-ziplist-entries 64
#如果Hash中各个字段的最大长度不超过512字节,Redis也将对该Key的Hash Value采用特殊编码方式。
hash-max-ziplist-value 512
#如果set中整型元素的数量不超过512时,Redis将会采用该特殊编码
set-max-intset-entries 512
list-max-ziplist-entries 64
list-max-ziplist-value 512
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
4.启动容器
参考命令:docker run -d --name redis02 -p 9997:6379 -v /opt/redis/redis.conf:/etc/redis/redis.conf -v /opt/redis/data/:/etc/redis/data/ xx.xx.xx.xx/library/redis:v2
redis配置参考: