shell脚本自动化安装docker_install.sh

docker_install.sh

一.docker_env_check()

1.查看server docker的状态

service docker status > /dev/nul 2>&1

service docker status :表示查看docker服务状态

> /dev/nul :重定向到linux的空设备文件

2>&1 :表示2的输出重定向等于1 



写脚本 首先先分析docker的环境变量,检查服务器是否安装了docker ,check  docker_status

a.安装了docker 在运行

b.安装了docker,并没有运行。

这时候需要加一个判断语句:

if [ $docker_status -eq 0 ];then
        echo "docker 正在运行"
        exit 1
    elif [ $docker_status -eq 3 ];then
        echo "docker 被安装,但未运行!"
        exit 1
    fi

注:0为成功 ,非0 为失败

-eq           //等于     -ne           //不等于        -gt            //大于

-lt            //小于     ge            //大于等于     le            //小于等于

2.  kernel_version=`uname -r | awk -F "." '{print $1}'`

  kernel_version用于打印当前内核的主版本号。

  uname -r 命令查看你当前的内核版本 uname用于显示当前操作系统名称


 awk -F "." '{print $1}'`输出前一个字段

    写个判断语句:
 if [ $kernel_version -lt 3 ];then
        echo "kernel 版本低!"
        exit 1
    fi

3. device_mapper=`grep device-mapper /proc/devices|wc -l`

grep device-mapper /proc/devices docker的存储驱动是Device Mapper,看下你的驱动是否符合


wc -l 显示文件的行数

加个if判断:

if [ ! $device_mapper -eq 1 ];then
        echo "device-mapper 不存在"
        exit 1
    fi

最后输出字符创: echo "environment check 完成 !"

整个过程主要检查了docker的状态,内核的版本是否支持,device_mapper  docker的存储驱动。
二.docker_install 开始安装

list 存放着需要安装的RPM依赖包

 for i in `cat ./list`
    do
        rpm -ivh ./rpm/$i

done

rpm -ivh your-package.rpm    rpm程序来安装
 

if [ ! $? -eq 0 ];then
        echo "install docker fail!"
        exit 1
    else
        echo "install docker success!"
    fi

注:$$ shell 本身的pid;

        $! Shell最后运行的后台Process的PID

    $? 最后运行的命令的结束代码(返回值)
    $- 使用Set命令设定的Flag一览
    $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $# 添加到Shell的参数个数
    $0 Shell本身的文件名
    $1~$n添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

三、docker配置

docker_conf()

sed -i 's/other_args=/other_args="--iptables=false"/' /etc/sysconfig/docker

sed 是一种在线编辑器,它一次处理一行内容/etc/sysconfig/docker 

docker_start()

service docker start

service iptables stop

防火墙的基本操作命令:
查询防火墙状态:

[root@localhost ~]# service   iptables status
停止防火墙:
[root@localhost ~]# service   iptables stop
启动防火墙:
[root@localhost ~]# service   iptables start
重启防火墙:
[root@localhost ~]# service   iptables restart
永久关闭防火墙:
[root@localhost ~]# chkconfig   iptables off
永久关闭后启用:
[root@localhost ~]# chkconfig   iptables on

docker_onboot(){
chkconfig docker on

chkconfig docker on # 加入开机启动

你可能感兴趣的:(系统部署实施)