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
Docker版本在 1.8 与 1.11 之间
您可以找到 Docker 配置文件,在配置文件中的 DOCKER_OPTS 加入。不同的 Linux 发行版的配置路径不同,这里以 Ubuntu 为例。
a) Ubuntu 14.04版本
修改 /etc/default/docker 文件,加入如下参数。
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 参数特别说明 网上找得: