• Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis


    整体结构如下图

     

    先来在 172.16.0.200 安装docker-ce (新)或 docker-io(旧)     

    0: Docker-ce  (新版本  Docker version 17.09.0-ce)


    1. 卸载老版本的 docker 及其相关依赖
    sudo yum remove docker docker-common container-selinux docker-selinux docker-engine

    ​ 2. 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
    sudo yum install -y yum-utils

    ​ 3. 添加yum源
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    ​ 4. 更新索引
    sudo yum makecache fast

    ​ 5. 安装 docker-ce
    sudo yum install docker-ce

    ​ 6. 启动 docker
    sudo systemctl start docker

    ​ 7. 验证是否安装成功
    sudo docker info

    1:搜索是否有可用得docker   rpm 包  (老版本  Docker:1.12)

    yum list | grep docker-io

     

    2:安装epel-release 和  docker-io 

    yum install  epel-release -y && yum makecache &&yum install docker-io -y

    3:启动docker 

    systemctl start docker       

    #查看一下docker 是否启动

    4:搜索可用镜像

    docker search centos

     

    5:docker 可配置国内加速

    通过配置文件启动Docker

    Docker 版本在 1.12 或更高

    修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。

    vim /etc/docker/daemon.json
    {
     "registry-mirrors": ["https://registry.docker-cn.com"]
    }

    Docker版本在 1.8 与 1.11 之间

    您可以找到 Docker 配置文件,在配置文件中的 DOCKER_OPTS 加入。不同的 Linux 发行版的配置路径不同,这里以 Ubuntu 为例。

    a) Ubuntu 14.04版本

    修改 /etc/default/docker 文件,加入如下参数。

     
    vim /etc/default/docker
    DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

    6:  pull   一个官方基础镜像下来   我们拿docker.io/centos  来做基础镜像

    docker pull docker.io/centos

    docker images 

    接下来这个脚本做了什么?

             1  在本地下载一下redis.tar.gz包  解压编译

             2  修改redis.conf 配置文件  , 在/home目录下创建redis-dockerfile 目录 将redis编译完成二进制包  移过来  等一下copy进制作得镜像当中

             3  创建  build 所需Dockerfile  方件

             4   build  一个 redis-Images  并挂载log 进容器当中启动   

    代码出下    new_redis_images.sh

    #!/bin/bash
    #author  Mrchen 237356573@qq.com
    
    yum install wget gcc make -y
    cd /mnt
    wget http://download.redis.io/releases/redis-3.2.8.tar.gz
    tar -xzvf redis-3.2.8.tar.gz && rm -rf redis-3.2.8.tar.gz
    cd redis-3.2.8
    make && make install
    mkdir -p  /home/redis-DockerFiel
    mv /mnt/redis-3.2.8   /home/redis-DockerFiel/redis
    
    #-----------------------set_redis.conf-------------------------------
    
    cd /home/redis-DockerFiel
    if [[ -e ./redis/redis.conf ]]; then
    cat >  ./redis/redis.conf  <<EOF
    daemonize no
    port 6379
    logfile "/var/log/redis.log"
    appendonly yes
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    EOF
    
    fi
    
    #本地创建redis.log  等一下挂载进容器
    touch /data/redis/redis.log
    
    #-------------------new_redis__Dockerfile..........................
    
    if [[ ! -e /home/redis-DockerFiel/Dockerfile ]]; then
    cat > /home/redis-DockerFiel/Dockerfile <<EOF
    ############################################ 
    # version : python-django/redis:v1 
    # desc : 当前版本安装的redis 
    ############################################
    #指定基础镜像:docker.io/centos
    FROM docker.io/centos
     
    MAINTAINER The CentOS Project <237356573.qq.com> 
    
    #copy redis应用程序目录到容器中
    COPY ./redis   /usr/local/redis
     
     
    #创建redis log 日记
    RUN touch /var/log/redis.log
     
    #开放6379端口
    EXPOSE  6379
     
    #启动Redis
    ENTRYPOINT ["/usr/local/redis/src/redis-server" , "/usr/local/redis/redis.conf"]
    
    EOF
    
    fi
    
    #-------------------------start docker "build" redis Images---------------------
    cd /home/redis-DockerFiel && docker build    -t  python_django/redis:1.0  .
    #-------------------------start docker "run" redis  Images......................
    docker run --name redis   --privileged=true  -v /data/redis/redis.log:/var/log/redis.log   -p 6379:6379 -d python_django/redis:1.0
    

     7:  准备运行脚本

     bash   new_redis_images.sh   #却保无 docker  images  name--->>>     python_django/redis:1.0  存在 仓库在也不行

    docker stop name---python_django/redis:1.0

    docker  rmi -f  name---python_django/redis:1.0

    运行脚本

    bash   new_redis_images.sh

    连接测试:

     

    #最后说明一点 就是 脚本中得  python_django/redis:1.0     可以用变量 代替  不这样该脚本只能运行一次  第二次就会产生build   时候 name 重名 error 

    --privileged=true 参数特别说明  网上找得:

  • 相关阅读:
    device not found解决方案
    angularjs 中通过 $location 进行路由跳转传参
    js中时间大小的比较
    MySql中Week()函数的用法
    ionic2集成sdk后,连接超时的问题
    SparkContext的初始化(季篇)——测量系统、ContextCleaner及环境更新
    《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动
    TaskScheduler的启动
    SparkContext的初始化(叔篇)——TaskScheduler的启动
    《深入理解SPARK:核心思想与源码分析》——SparkContext的初始化(仲篇)——SparkUI、环境变量及调度
  • 原文地址:https://www.cnblogs.com/python-diy/p/7653704.html
Copyright © 2020-2023  润新知