基于前篇的手动安装,更进一步希望一键式安装,基本思路如下:


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依赖及主程序,参考前篇,我们得到如下脚本

#! /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 p_w_picpaths

注:mount由一键式命令已经完成,此脚本即直接复制并自动化安装,最后启动docker服务并显示版本等!需使用UFT-8无BOM格式编写!


3、编写一键式安装命令:

我们知道光驱加载后需要执行如下操作:挂载、复制、给予执行权限、执行sh脚本,一键式命令如下:

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可以复制命令,较为简便)

# 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已经一键式安装完成,如果配合p_w_picpaths等,可以完成类似服务器一键式部署等操作!

pull测试

# 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 p_w_picpath for centos:7
# docker p_w_picpaths
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              7                   ce20c473cd8a        5 weeks ago         172.3 MB

2015-11-24