1. 程式人生 > >docker 使用 iso虛擬光碟機一鍵式安裝

docker 使用 iso虛擬光碟機一鍵式安裝

基於前篇的手動安裝,更進一步希望一鍵式安裝,基本思路如下:

1、將安裝包及sh指令碼打包成iso檔案,製作成光碟載入在linux系統中,然後通過mount、cp、sh等操作完成一條命令即可一鍵式安裝完成;

2、本地模擬時使用virtual box載入iso來驗證;

1、準備iso檔案:

將rpm包及sh指令碼放在同一大目錄中,使用UltrISO軟體製作iso,名稱可自定義;

此處我們按照UltrISO預設:得到 20151124_154424.iso

目錄結構:

/dockerstart.sh

/yzdocker/docker-engine-1.7.1-1.el7.centos.x86_64.rpm

/yzdocker/libcgroup-0.41-8.el7.x86_64.rpm

/yzdocker/libcgroup-devel-0.41-8.el7.x86_64.rpm

/yzdocker/libcgroup-pam-0.41-8.el7.x86_64.rpm

/yzdocker/libcgroup-tools-0.41-8.el7.x86_64.rpm

2、編寫dockerstart.sh指令碼,

一鍵式命令最後一步即要執行指令碼自動化安裝docker依賴及主程式,參考前篇,我們得到如下指令碼

1 2 3 4 5 6 7 8 9 10 11 12 13 #! /bin/bash
date "+%Y%m%d %H:%M:%S" cd /mnt/cdrom/ cp -r /mnt/cdrom/yzdocker/ /tmp/yzdocker/ cd /tmp/yzdocker/ echo "Linux docker as blow:" ls rpm -ivh libcgroup-* rpm -ivh docker-engine-1.7.1-1.el7.centos.x86_64.rpm sleep 1 service docker start docker -v docker images

注:mount由一鍵式命令已經完成,此指令碼即直接複製並自動化安裝,最後啟動docker服務並顯示版本等!需使用UFT-8無BOM格式編寫!

3、編寫一鍵式安裝命令:

我們知道光碟機載入後java培訓機構排名需要執行如下操作:掛載、複製、給予執行許可權、執行sh指令碼,一鍵式命令如下:

1 mkdir /mnt/cdrom;mount -t auto /dev/cdrom /mnt/cdrom;cd /mnt/cdrom/;cp dockerstart.sh /tmp;cd /tmp;tr -d '\r' <dockerstart.sh>dockerstart1.sh;chmod +x dockerstart1.sh;sh dockerstart1.sh

說明:

tr -d '\r' <dockerstart.sh>dockerstart1.sh 是為了去除Windows與linux編碼差異去除空格'\r'

4、實踐過程:以virtual box為例,以下簡稱vb

①、vb啟動centos(預設最小化安裝版本)

②、載入iso,vb中選擇裝置--分配光碟機--虛擬盤,選擇20151124_154424.iso,確定後即載入

③、Xshell登入centos7或在vb介面執行(Xshell可以複製命令,較為簡便)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # mkdir /mnt/cdrom;mount -t auto /dev/cdrom /mnt/cdrom;cd /mnt/cdrom/;cp dockerstart.sh /tmp;cd /tmp;chmod +x dockerstart.sh;tr -d '\r' <dockerstart.sh>dockerstart1.sh;sh dockerstart1.sh mount: /dev/sr0 is write-protected, mounting read-only 20151124 15:58:34 Linux docker as blow: docker-engine-1.7.1-1.el7.centos.x86_64.rpm  libcgroup-devel-0.41-8.el7.x86_64.rpm  libcgroup-tools-0.41-8.el7.x86_64.rpm libcgroup-0.41-8.el7.x86_64.rpm     libcgroup-pam-0.41-8.el7.x86_64.rpm warning: libcgroup-0.41-8.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing...                          ################################# [100%] Updating / installing... 1:libcgroup-0.41-8.el7             ################################# [ 25%] 2:libcgroup-devel-0.41-8.el7       ################################# [ 50%] 3:libcgroup-pam-0.41-8.el7         ################################# [ 75%] 4:libcgroup-tools-0.41-8.el7       ################################# [100%] Preparing...                          ################################# [100%] Updating / installing... 1:docker-engine-1.7.1-1.el7.centos ################################# [100%] Starting docker (via systemctl):                           [  OK  ] Docker version 1.7.1, build 786b29d REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

此時docker已經一鍵式安裝完成,如果配合images等,可以完成類似伺服器一鍵式部署等操作!

pull測試

1 2 3 4 5 6 7 8 9 10 11 12 # docker pull centos:7 7: Pulling from centos 47d44cb6f252: Pull complete  168a69b62202: Pull complete  812e9d9d677f: Pull complete  4234bfdd88f8: Pull complete  ce20c473cd8a: Pull complete  Digest: sha256:0e23418e4e24aeeecf06db0623dc06cb0d386da01e390bc1fefa630a92e3c8d4 Status: Downloaded newer image for centos:7 # docker images REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE centos              7                   ce20c473cd8a        5 weeks ago         172.3 MB