基于前篇的手动安装,更进一步希望一键式安装,基本思路如下:
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 images
注: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已经一键式安装完成,如果配合images等,可以完成类似服务器一键式部署等操作!
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 image for centos:7 # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos 7 ce20c473cd8a 5 weeks ago 172.3 MB
2015-11-24
本文出自 “wangn51cto笔记” 博客,转载请与作者联系!