redis的docker文件,通過docker-compose配置redis

準備環境:

docker 18.06.1-ce

docker-compose 1.23.0-rc3

redis如5.0.3

1 創建redis的dockerfile

FROM redis:5.0.3
LABEL "maintainer"="xx@yy"
ENV TIME_ZONE=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
RUN mkdir -p /data/redis
WORKDIR /app_redis
RUN mkdir -p /app_redis/log
ADD conf ./conf 
ADD bin ./bin
RUN chown redis:redis /app_redis/* && \
    chmod +x ./bin/redis-entrypoint.sh
EXPOSE 6379
CMD ["./bin/redis-entrypoint.sh"]

redis.conf 部分內容如下:

#修改daemonize爲yes,即默認以後臺程序方式運行(還記得前面手動使用&號強制後臺運行嗎)。
daemonize no
#可修改默認監聽端口
port $REDIS_PORT
#修改生成默認日誌文件位置
logfile "/app_redis/log/redis.log"
#配置持久化文件存放位置
dir "/data/redis"
requirepass $REDIS_PASSWORD

redis-entrypoint.sh內容如下:

#!/usr/bin/env sh
 
sed -i "s/\$REDIS_PORT/$REDIS_PORT/g" /app_redis/conf/redis.conf   #聲明參數,爲了docker-compose裏面可以動態配置
sed -i "s/\$REDIS_PASSWORD/$REDIS_PASSWORD/g" /app_redis/conf/redis.conf  #聲明參數
 
redis-server /app_redis/conf/redis.conf

2 生成docker 鏡像

docker build -t mall/redis:5.0.3 -f Dockerfile .

其中目錄結構如下:

dockerfile  bin目錄裏面是redis-entrypoint.sh conf目錄裏面是redis.conf

3 如果選擇直接docker啓動則命令如下

docker run -d -p 6379:6379 --name redis -v /data/reid/soft/redis-5.0.3/docker/conf/:/app_redis/conf -v /data/redis:/data/redis -v /data/reid/soft/redis-5.0.3/docker/redis/log:/app_redis/log ce209681068

其中ce209681068是鏡像ID

4 如選擇docker-compose作爲項目啓動,則docker-compose.yaml文件如下

version: '2'
services:
   redis:
      image: xxx/mall/redis:5.0.3
      container_name: redis
      restart: always
      ports:
        - 127.0.0.1:26379:6379
      environment:
        - REDIS_PORT=6379
        - REDIS_PASSWORD="123"
      volumes:
        - $PWD/conf:/app_redis/conf
        - $PWD/redis/data:/data/redis
        - $PWD/redis/log:/app_redis/log
      #command: redis-server /etc/redis/redis.conf

5 docker-compose -p own_redis up -d 啓動,redis/log/redis.log to check redis start log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章