1. 程式人生 > >shell指令碼自動化安裝docker_install.sh

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"的形式輸出所有引數。
    [email protected] 所有引數列表。如"[email protected]"用「"」括起來的情況、以"$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

防火牆的基本操作命令:
查詢防火牆狀態:

[[email protected] ~]# service   iptables status
停止防火牆:
[[email protected] ~]# service   iptables stop
啟動防火牆:
[[email protected] ~]# service   iptables start
重啟防火牆:
[[email protected] ~]# service   iptables restart
永久關閉防火牆:
[[email protected] ~]# chkconfig   iptables off
永久關閉後啟用:
[[email protected] ~]# chkconfig   iptables on

docker_onboot(){
chkconfig docker on

chkconfig docker on# 加入開機啟動

相關推薦

shell指令碼自動化安裝docker_install.sh

docker_install.sh 一.docker_env_check() 1.檢視server docker的狀態 service docker status > /dev/nul 2>&1 service docker status :表示檢視do

shell指令碼原始碼安裝tomcat

#!/bin/bash##tomcat install##2018.11.23##tomcat版本8.5.35,jdk-8u191-linux-x64.tarPWD=/usr/local/srcDIR=/usr/localIP=$(ip a |grep "scope global" |awk '{print

【linux 學習】shell指令碼自動化登入

每次登入都需要輸入密碼,,好麻煩滴感覺,於是想做個自動登入指令碼,豈不美哉^ . ^ 如何輸入密碼是個大問題,好在有個互動輸入的工具【expect】 首先需要安裝一下, 【Centos】 #檢視是否安裝過 yum list | grep expect #安裝

Linux的Shell指令碼——Nginx安裝及服務、監測

netstat命令可以檢視系統中啟動的埠資訊,該命令常用選項如下:   -n  以數字格式顯示埠號   -t  顯示TCP連線的埠   -u  顯示UDP連線的埠   -l  顯示服務正在監聽的埠資訊,如httpd啟動後,會一直監聽80埠   -p  顯示監聽埠的服務名稱是

Linux安裝nginx(shell指令碼)&軟體安裝之nginx

1.編寫installNginx.sh檔案 #!/bin/bash mydir=`pwd` if [ ! -f "$mydir/nginx-1.10.2.tar.gz" ];then

Linux安裝JDK&Tomcat(shell指令碼)&軟體安裝之JDK&T

1.編寫installJdkTomcat.sh指令碼 #!/bin/bash myDir=`pwd` rpm -qa | gre

hadoop-yarn叢集中,通過shell指令碼自動化提交spark任務

Set() 18/02/11 12:07:32 INFO yarn.Client: Submitting application application_1518316627470_0003 to ResourceManager 18/02/11 12:07:32 INFO impl.YarnClientIm

jenkins shell指令碼自動化構建阿里雲k8s上應用

#!/bin/bash source /etc/profile cd /mnt/workspace/weifeng-ui-pre/ npm i && npm run build rm -rf /mnt/workspace/weifeng-ui-pre/dockerfile/bu

Mac 用shell指令碼編譯安裝openssl for Mac and iOS

Mac shell編譯安裝openssl for Mac and iOS 想做一個ios加密專案,用到openssl,故用指令碼傻瓜式下載、編譯、安裝,shell指令碼改自https://gist.github.com/armadsen/b30f352a8d6

Shell指令碼-自動化部署WEB

導言:最近在阿里雲伺服器上搭建了個個人的網站,對於這個網站採用了Django框架開發,搭建伺服器請檢視:http://blog.csdn.net/temanm/article/details/49255769,對於WEB的更新採用了Shell指令碼,每次更新只需

Bitcode Shell指令碼 自動化打包 EXPORT FAILED

iOS 打包上線 All object files and libraries for bitcode must be generated from…報錯 錯誤現象:  一、App的開發對bitcode的支援 //現在開發的iOS應用,有一個bitcode選項,通常我們的做法是在設定內,設定bit

shell 指令碼自動化

在日常編寫shell指令碼時,我們通過需要讀取互動輸入的資料來控制程式執行。但是當用戶輸入的這些資料是固定的時候我們可以使這種半自動互動執行方式變成自動執行。         首先寫一個互動式輸入的指令碼:         #!/bin/bash/         # fi

sentos7原始碼編譯安裝mysql(指令碼自動化安裝

一、下載mysql安裝包https://dev.mysql.com/downloads/mysql/5.7.html#downloads選擇自己需要的版本,我這裡的是5.6.40版本二、在root根目錄寫安裝的指令碼vim mysql_install.sh#!/bin/bas

shell程式設計 redis的自動化安裝指令碼

#! /bin/bashmain_path=/usr/local/redisinstall_name=redis-4.0.10.tar.gzinstall_path=/usr/local/redis/env_fun(){echo "---檢測本機環境----"cd /usr/

Shell 自動化安裝Apache,並配置虛擬主機

shell 自動化安裝apache(一)Apache安裝思路 (1) 安裝必要組件 wget openssl* gcc (2)關閉防火墻和Selinux service iptables stop setenforce 0 (3)下載Apache源碼文件,並

shell 自動化安裝Vsftpd

shell 自動安裝vsftpd(一) 思路 (1) 通過yum install vsftpd* -y 安裝虛擬用戶 (2)關閉防火墻和Selinux service iptables stop setenforce 0 (3)安裝虛擬用戶認證模塊 (4)創建虛擬用戶的

shell自動化安裝LAMP

shell lamp (一)安裝思路 (1)源碼編譯Apache WEB 服務 (2)源碼編譯MySQL DB 服務 (3)源碼編譯PHP WEB 服務 (4)LAMP源碼整合+PHP頁面創建 (5)對shell腳本優化,引入變量,條件判斷(二)案例腳本 #!/bin

Linux環境一鍵自動化安裝oracle軟件的構想(附shell腳本)

don 服務器 ons redhat7 cif tex entos sdi class 一、自動化批量安裝ORACLE軟件的構想1、1構想從哪裏來?熟悉PXE+KICKSTART一鍵批量安裝Liunx操作系統的童鞋都知道,該方式可實現快速定制,規範化,自動化的無人值守安裝。

指令碼實現自動化安裝lamp&lnmp

#備註:前提是將lnmp和lnmp自動化指令碼寫好放在相應的路徑, 指令碼已寫好,請檢視我部落格中的 shell指令碼 專欄! 1 #!/bin/bash 2 #安裝lamp或者lnmp 3 4 path=/server/scripts #定義兩個指令碼路徑 5 [

Shell指令碼構建Docker 半自動化編譯打包釋出應用

Docker 釋出的方式為實現DevOps(自動化運維,需要配置 程式碼管理工具如Git的hook來實現提交編譯、打包、釋出等一系列事件控制)提供了諸多方便,輔助於Shell指令碼可以很好的配合起來。Docker映象可以通過自動化編譯,也可以通過匯入映象的方式來獲得。本文的題目叫:Shell指令