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 参数特别说明  网上找得:

原文地址:https://www.cnblogs.com/python-diy/p/7653704.html