一、概述
線上使用的redis版本為
3.2.13
,但是dockerhub沒有此版本的鏡像。隻有
3.2.12
但是預設的鏡像啟動時,是沒有
redis.conf
的,如果需要加配置,需要自己定義配置檔案。
二、封裝鏡像
建立目錄
# dockerfile目錄
mkdir -p /opt/dockerfile/redis
# 持久化目錄
mkdir -p /data/redis
複制
/opt/dockerfile/redis目錄結構如下:
./
├── dockerfile
├── redis.conf
└── run.sh
複制
dockerfile
FROM redis:3.2.12
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf"]
複制
redis.conf
dir /data
pidfile /data/redis.pid
logfile "/data/redis.log"
repl-disable-tcp-nodelay yes
no-appendfsync-on-rewrite yes
maxmemory 2048m
maxmemory-policy allkeys-lru
requirepass 123456
複制
注意:調整maxmemory參數。我這裡的伺服器記憶體是4g,是以調整為2g
run.sh
#!/bin/bash
docker run -d -it --name redis_prod --restart=always -p 6379:6379 -v /data/redis:/data redis_prod:3.2.12
複制
生成鏡像
cd /opt/dockerfile/redis
docker build -t redis_prod:3.2.12 .
複制
啟動鏡像
bash run.sh
複制
三、測試
# docker exec -it redis_prod /bin/bash
# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info
# Server
redis_version:3.2.12
...
複制