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

摘要:
不同的Linux发行版具有不同的配置路径。以Ubuntu为例。a) 在Ubuntu 14.04中,修改/etc/default/locker文件并添加以下参数。vim/etc/default/dockerDOCKER_OPTS=“--注册表镜像=https://registry.docker-cn.com“6:拉一个官方的基本图像。我们使用docker.io/cantos作为基本图像。dockerpulldocker.io/centosdockerimages这个脚本接下来要做什么?1。在本地下载redis.tar.gz包,解压并编译它。修改redis.conf配置文件。在/home目录下创建redisdockerfile目录,在编译redis后移动二进制包,并等待将副本复制到映像中。3.创建构建所需的Dockerfile组件。4.构建1个Redis映像并将日志装入容器。启动代码并下载新的_ redis_ images.sh#!

整体结构如下图

 

Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第1张

先来在 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

 Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第2张

2:安装epel-release 和  docker-io 

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

3:启动docker 

systemctl start docker       

#查看一下docker 是否启动

Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第3张

4:搜索可用镜像

docker search centos

 Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第4张

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 

Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第5张

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

         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

Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第6张

连接测试:

 Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第7张

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

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

Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis第8张

免责声明:文章转载自《Docker 搭建开源 CMDB平台 “OpsManage” 之 Redis》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ibatis实现Iterate的使用 (转)js DOM常见事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Redis服务启动失败,提示:redis-server:command not found

今天我开始做主从复制的集群模式的测试,所以需要再装一个Linux操作系统,我在虚拟机里已经安装了一个Linux操作系统,Redis也已经配置好了。今天打算再安装一个Linux操作系统,Linux系统的安装过程很简单,就不多说了,如果大家想看,请查看我的另一篇文章《Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装》。 Linux操作...

Docker-PS命令解析

查看 docker 容器,必然要用到 docker ps 命令。其基本格式为: docker ps [OPTIONS] 关键在于 OPTIONS(选项): 1 常见用法 1. 最常见的用法 $ docker ps 显示当前正在运行的容器。 在 PORTS 一列,如果暴露的端口是连续的,还会被合并在一起,例如一个容器暴露了3个 TCP 端口:100,101...

php操作redis和memcache过期时间

php-redis 设置过期时间setTimeOut 命令行expireredis过期时间redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。没有设置过期时间的也就是永久存储 set:set('key','value')将值 value 关联到 key setTimeOut:setTim...

Docker 面试题(一)

什么是Docker? Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。   CI(持续集成)服务器的功能是什么? CI功能就是在每次提交之后不断地集成所有提交到存储库的代码,并编译检查错误 什么是Docker镜像? Docker镜像是Docker容器的源代码,Docker镜像用于创...

深入理解Spring Redis的使用 (八)、Spring Redis实现 注解 自动缓存

项目中有些业务方法希望在有缓存的时候直接从缓存获取,不再执行方法,来提高吞吐率。而且这种情况有很多。如果为每一个方法都写一段if else的代码,导致耦合非常大,不方便后期的修改。 思来想去,决定使用自动注解+Spring AOP来实现。 直接贴代码。 自定义注解类: package com.ns.annotation; import java.lang...

linux网络编程--UNIX域套接字

UNIX域套接字   socket同样可以用于本地通信   创建套接字时使用本地协议PF_UNIX(或PF_LOCAL)PF_LOCAL   分为流式套接字和用户数据报套接字   和其他进程间通信方式相比使用方便。效率更高   用于前后台进程通信 本地地址结构:  struct sockaddr_un {   sa_family_t sun_family;...