zoukankan      html  css  js  c++  java
  • 手写redis的docker文件,通过docker-compose配置redis

    在前面一遍随笔,配置的是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_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

    然后保存文件为docker-compose.yml

    4、查看下我们整个工作的目录结构

    写的不是很好,制作的时候,特别要注意的目录要相对应的配对哈。

    最后:

    我们在docker-compose.yml的同级目录下,执行以下脚本:

    docker-compose up -d

    成功启动。

  • 相关阅读:
    没有好的数据可视化分析工具,如何做好数据洞察,如何助力企业数据化转型
    8个可靠的开源数据可视化工具-你的选择是?
    数据可视化赋能大数据价值释放,助力大数据价值应用落地 echarts,d3.js
    (五).NET Core中过滤器Filter的使用介绍
    (四).NET Core中使用OOM框架,AutoMapper的使用介绍
    (三).NET Core WebAPI集成JWT,实现身份验证
    (二)集成Swagger接口文档分组配置.net core
    (一).NET Core WebAPI集成Swagger做接口管理
    要使数据分析真正有价值和有洞察力,就需要高质量的可视化工具
    基于echarts组件制作数据可视化大屏
  • 原文地址:https://www.cnblogs.com/contraII/p/10017798.html
Copyright © 2011-2022 走看看