zoukankan      html  css  js  c++  java
  • 基于Dockerfile 构建redis5.0.0(包括持久化)及RedisDestopManager 监控

    一 创建Dockerfile

    [root@zxmrlc docker]# mkdir redis
    [root@zxmrlc docker]# cd redis && touch Dockerfile
    
     1 #version: 2019-1-28
     2 FROM centos:7.5.1804
     3 MAINTAINER zxMrlc 
     4 #前置GCC编译环境 
     5 RUN ["yum","-y","update"]
     6 RUN ["yum","-y","install","gcc"]
     7 # 应该采用类似数组的方式进行传递命令 非数组形式 会在命令前 /bin/sh -c 运行,会出现很多问题。因为sh简化版,跑脚本会出现很多莫名其妙的error ,因为是测试 就先简化写了。
     8 
     9 # 玄学前置 ubuntu 不需要 centos 需要
    10 RUN yum  install -y epel-release
    11 #redis 安装 固定版本5.0.0 为例子
    12 RUN yum install -y gcc
    13 RUN yum install -y wget
    14 RUN yum clean all
    15 RUN wget download.redis.io/releases/redis-5.0.0.tar.gz
    16 #也可以先下载在宿主机上然后ADD ADD的时候会自动解压
    17 #挂载后进行解压也是可以的
    18 RUN tar -zxvf redis-5.0.0.tar.gz -C /usr/local/ && rm -f redis-5.0.0.tar.gz
    19 RUN yum install -y make
    20 RUN cd /usr/local/redis-5.0.0/ && make MALLOC=libc
    21 ##########修改配置开启远程连接,关闭保护模式##########
    22 ##########不应该开启后台进程运行模式,用后台启动会导致容器退出########## 
    23 RUN sed -i -e 's@bind 127.0.0.1@bind 0.0.0.0@g' /usr/local/redis-5.0.0/redis.conf 
    24 &&    sed -i -e 's@protected-mode yes@protected-mode no@g' /usr/local/redis-5.0.0/redis.conf 
    25 #&&     sed -i -e 's@daemonize no@daemonize yes@g' /usr/local/redis-5.0.0/redis.conf 
    26 ##########设置密码##########
    27 #RUN echo "requirepass test" >> /usr/local/redis-5.0.0/redis.conf
    28 EXPOSE 6379 
    29 
    30 ENTRYPOINT /usr/local/redis-5.0.0/src/redis-server /usr/local/redis-5.0.0/redis.conf
    31 #CMD []

    25行的配置一定不要打开,虽然平常在本机运行时都是通过后台运行。但是在容器中单独运行后台程序,终端没有内容会直接结束容器。

    二 构建镜像

    [root@zxmrlc redis]# docker build -t redis:v2019.1.28.6 $PWD

    简单的话写.更好。怕看不清更换成$PWD

    三  运行容器

    指定端口映射,前面已经设定6379自动映射,这里直接给定端口范围 即可 ,restart 应该设置为always

    [root@zxmrlc redis]# docker run -d --name=redis -p6379:6379 redis:v2019.1.28.6

    还是映射到主机上的6379了 查看一下

    [root@zxmrlc redis]# docker ps -a
    CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                    NAMES
    d072626e4b32        redis:v2019.1.28.6   "/bin/sh -c '/usr/..."   31 minutes ago      Up 3 seconds        0.0.0.0:6379->6379/tcp   redis

    端口列0.0.0.0:6379->6379/tcp 是ok的 如果只有6379/tcp就是失败的

    四  监控redis 

    由于版本5.0.0比较新,所以下载教新的RedisDestopManager  放个链接 官网下载要订阅,github有源码编译很麻烦。。

    链接:https://pan.baidu.com/s/13mk2UuC_zIz75T9UWunvkA
    提取码:7xoq


    五 持久化

    持久化的解决方案就很简单了 在配置文件里修改开启持久化,并且将目录挂载在宿主机即可

  • 相关阅读:
    C语言之分支语句
    C语言之运算符与表达式
    C语言之数据类型④——中文字符
    独特的对象引用:this
    理解赋值“=”的含义
    编写类的 “模板”
    类的定义
    Java语言规范
    第一周总结
    定义常量
  • 原文地址:https://www.cnblogs.com/Geek-xiyang/p/10332163.html
Copyright © 2011-2022 走看看