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 # 加入开机启动