手寫redis的docker文件,通過docker-compose配置redis
阿新 • • 發佈:2018-11-26
版本號 chown 位置 res docker try poi 監聽端口 執行權 - REDIS_PORT=6379
- REDIS_PASSWORD=密碼
ports: #暴露容器內部端口6379並映射到外部也為6379
- "6379:6379"
restart: unless-stopped #啟動方式
volumes:
- $PWD/redis/data:/data #文件綁定掛載:$PWD表示當前目錄,然後這裏就是當前目錄下的/redis/data子目錄,掛載為容器內的/data目錄
- $PWD/redis/log:/redis/log
在前面一遍隨筆,配置的是mysql主從的docker-compose配置。今天我們來學習配置編排容器redis。
準備環境:
docker 18.06.1-ce
docker-compose 1.23.0-rc3
redis最新版
開始:
1、首先我們創建下docker文件的目錄,並新建Dockerfile、redis-entrypoint.sh、redis.conf
如下圖:
Dockerfile文件內容如下:
FROM redis:latest #指定啟動容器的鏡像 MAINTAINER cc <cc@qq.com> #署名 RUN mkdir -p /redis/log; #在容器裏運行創建目錄/redis/log WORKDIR /redis #設置工作目錄為/redis COPY redis.conf . #拷貝redis.conf配置文件到工作目錄(這裏其實就是在Dockerfile同級下的redis.conf文件拷貝到容器內當前工作目錄,也就是/redis目錄) COPY redis-entrypoint.sh /usr/local/bin/ #拷貝redis.entrypoint.sh 到容器內/usr/local/bin/目錄下 RUN chown redis:redis /redis/* && \ #給容器內的/redis/*設置歸屬用戶,並設置redis.entrypoint.sh文件的可執行權限 chmod +x /usr/local/bin/redis-entrypoint.sh EXPOSE 6379 #暴露端口6379 CMD ["redis-entrypoint.sh"] #執行redis-entrypoint.sh文件
redis.conf內容如下:
#修改daemonize為yes,即默認以後臺程序方式運行(還記得前面手動使用&號強制後臺運行嗎)。
daemonize no
#可修改默認監聽端口
port $REDIS_PORT
#修改生成默認日誌文件位置
logfile "/redis/log/redis.log"
#配置持久化文件存放位置
dir "/tmp"
requirepass $REDIS_PASSWORD
redis-entrypoint.sh內容如下:
#!/usr/bin/env sh sed -i "s/\$REDIS_PORT/$REDIS_PORT/g" /redis/redis.conf #聲明參數,為了docker-compose裏面可以動態配置 sed -i "s/\$REDIS_PASSWORD/$REDIS_PASSWORD/g" /redis/redis.conf #聲明參數 redis-server /redis/redis.conf
到這步,我們就以及把redis的所有配置都準備好了,接下來在Dockerfile的目錄,執行腳本,生成redis鏡像文件
2、生成docker 鏡像文件
docker build -t iqeq/redis:1.0 . # 生成了一個iqeq/redis:1.0的鏡像文件
3、編排docker-compose文件
version: ‘3‘ #版本號
services:
redis:
container_name: redis_container #容器名,自定義
image: iqeq/redis:1.0 #剛才生成的鏡像名
environment: #環境參數:配置剛才shell啟動腳本裏面聲明的2個參數
- REDIS_PASSWORD=密碼
ports: #暴露容器內部端口6379並映射到外部也為6379
- "6379:6379"
restart: unless-stopped #啟動方式
volumes:
- $PWD/redis/data:/data #文件綁定掛載:$PWD表示當前目錄,然後這裏就是當前目錄下的/redis/data子目錄,掛載為容器內的/data目錄
- $PWD/redis/log:/redis/log
然後保存文件為docker-compose.yml
4、查看下我們整個工作的目錄結構
寫的不是很好,制作的時候,特別要註意的目錄要相對應的配對哈。
最後:
我們在docker-compose.yml的同級目錄下,執行以下腳本:
docker-compose up -d
成功啟動。
手寫redis的docker文件,通過docker-compose配置redis