一、概述
線上使用的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 ...