Docker redis集群搭建
阿新 • • 發佈:2019-01-19
啟動 src 時間 圖片 x86 con ros 環境 編碼
Docker redis集群搭建
環境1:
- 系統:Linux Centos 7.4 x64
- 內核:Linux docker 3.10.0-693.2.2.el7.x86_64
- Docker 版本:18.09.1
- redis 版本:redis-4.0.9
- 主機數量:1臺
- 主機地址:192.168.1.81
環境2:
- 已搭建 Docker Swarm 管理
- 已搭建 Docker 私有倉庫
- 已搭建 NFS 存儲
目錄結構
└── redis
├── Dockerfile
├── redis-4.0.9.tar.gz
└── redis.conf
└── service_redis.yml
下載
- redis壓縮包
- 下載地址:https://pan.baidu.com/s/14Sr47StorzgDYMeH054waA
- 密碼:xlln
1、創建dockerfile
FROM centos:6 MAINTAINER xiangsikai ENV LANG en_US.UTF-8 ENV TZ=Asia/Shanghai RUN yum install -y gcc gcc-c++ tcl sudo ADD redis-4.0.9.tar.gz /usr/local/ RUN mkdir /usr/local/redis-4.0.9/data && mkdir /usr/local/redis-4.0.9/logs && mkdir /usr/local/redis-4.0.9/run RUN cd /usr/local/redis-4.0.9/ && make && make install RUN rm -rf /usr/local/redis-4.0.9/redis.conf COPY redis.conf /usr/local/redis-4.0.9/redis.conf RUN useradd redis && chown -R redis:redis /usr/local/redis-4.0.9/ && chown -R redis:redis /usr/local/bin/redis* CMD ["sudo","-u","redis","/usr/local/bin/redis-server","/usr/local/redis-4.0.9/redis.conf"] EXPOSE 6379
# 指定系統鏡像版本 FROM centos:6 # 指定管理員名稱 MAINTAINER xiangsikai # 添加變量,指定中文編碼 ENV LANG en_US.UTF-8 # 添加變量,同步系統時間 ENV TZ=Asia/Shanghai # 添加命令 RUN yum install -y gcc gcc-c++ tcl sudo # 添加文件 ADD redis-4.0.9.tar.gz /usr/local/ # 添加命令 RUN mkdir /usr/local/redis-4.0.9/data && mkdir /usr/local/redis-4.0.9/logs && mkdir /usr/local/redis-4.0.9/run # 添加命令 RUN cd /usr/local/redis-4.0.9/ && make && make install # 添加命令件 RUN rm -rf /usr/local/redis-4.0.9/redis.conf # 上傳文件,上傳本地文件到容器 COPY redis.conf /usr/local/redis-4.0.9/redis.conf # 添加命令 RUN useradd redis && chown -R redis:redis /usr/local/redis-4.0.9/ && chown -R redis:redis /usr/local/bin/redis* # 啟動命令 CMD ["sudo","-u","redis","/usr/local/bin/redis-server","/usr/local/redis-4.0.9/redis.conf"] # 開放端口 EXPOSE 6379文件註釋
2、創建鏡像(redis目錄下)
docker build -t 192.168.1.81:5000/redis:v1 .
3、上傳鏡像
docker push 192.168.1.81:5000/redis:v1
4、創建 service_redis.yml
version: ‘3.7‘ services: redis: image: 192.168.1.81:5000/redis:v1 ports: - 6380:6379 networks: - networkce deploy: mode: replicated replicas: 2 update_config: parallelism: 1 delay: 10s failure_action: rollback order: start-first rollback_config: parallelism: 1 delay: 10s failure_action: rollback order: start-first volumes: - type: volume source: nfs-redis_log target: /usr/local/redis-4.0.9/logs volume: nocopy: true networks: networkce: driver: overlay volumes: nfs-redis_log: driver: local driver_opts: type: "nfs" o: "addr=192.168.1.81,vers=4,soft,timeo=180,bg,tcp,rw" device: "192.168.1.81:/docker/service/zs/redis/log"
# 指定版本 version: ‘3.7‘ # 服務 services: # 指定服務名 redis: # 指定使用鏡像 image: 192.168.1.81:5000/redis:v1 # 指定開放端口 ports: - 6379:6379 # 指定網絡 networks: - networkce # 管理容器 deploy: # 設置副本模式 mode: replicated # 副本數 replicas: 2 # 更新配置 update_config: # 每次更新數量 parallelism: 1 # 每次更新時間 delay: 10s # 更新失敗設置,rollback回滾 failure_action: rollback # 更新狀態,start-firest 更新同時疊加舊版本,之後刪除 order: start-first # 回滾配置 rollback_config: # 每次回滾數量 parallelism: 1 # 每次回滾時間 delay: 10s # 回滾失敗設置,rollback回滾 failure_action: rollback # 回滾狀態,start-firest 回滾同時疊加舊版本,之後刪除 order: start-first # 配置持久化數據 volumes: # 數據類型 - type: volume # 設置名稱 source: nfs-redis_log # 掛載容器路徑 target: /usr/local/redis-4.0.9/logs # 默認 volume: nocopy: true # 網絡 networks: # 添加網絡名稱 networkce: driver: overlay # 數據持久化 volumes: # 數據名稱 nfs-redis_log: driver: local driver_opts: # 類型 type: "nfs" # 官方默認配置 o: "addr=192.168.1.81,vers=4,soft,timeo=180,bg,tcp,rw" device: "192.168.1.81:/docker/service/zs/redis/log"文件註釋
5、創建服務
docker stack deploy -c service_redis.yml redis
Docker redis集群搭建