简介之前呢,先说结论:一次镜像,处处运行,从搬家到搬楼。
之前在学Linux的时候,是要双系统的,因为大家学习环境基本上使用的都是windows系统,在软件生态这一块,Linux有些是支持不太好的,所以一般都把windows作为自己的学习平台。
当我们需要学习Linux的时候,我们就要从windows10系统转变到使用CentOS7的Linux系统 。
这时候就发生了版本的偏移。每位同学的笔记本大不相同,有华为、华硕、联想、小米、IBM,由于机型不同,运行Linux一定会出现各种问题。
怎么保证所有的Linux都一样呢?在进行环境迁移的时候都没有问题呢?
我相信大家一定会想到装一个软件:VMware,就是我们装虚拟机的软件。我们要保证所有同学的环境CentoOS7的Linux环境都一样,不发生一点偏移。我们现在要完成的是,只有一份镜像文件(CentoOS7.iso),只要每一位同学都装了一样的软件VMware,在同样的VMware上面运行同一个CentoOS7.iso镜像文件 。
相同的CentOS7镜像文件,保证了环境迁移的一致性,这就是之前理念的雏形。
Docker就更狠了,把这个理念发扬光大,他们之间的理念是相通的。
比如,一个电商项目gmall,各种各样的软件:redis、mysql、mq等等。
有一个问题,同桌的你们两个互换源代码去跑,因为环境一变更,大家就不能运行了,怎么办?
假设,我们将上诉源码+运行环境+特殊引导第三方组件...打成一个包,也就是类似于centos7.iso的镜像文件(gaml.镜像文件)。相当于只要在这种环境的前提条件下,源代码100%可以跑的通。为了保证大家都有一样的运行环境,发布过去给运维团队进行测试。我开发团队用什么环境开发项目,你运维就一样是什么环境运行项目。
当运维有了镜像文件之后,用Docker引擎进行运行,其实和VMware的理念一样。同一个centos7.iso镜像文件保证了所有同学装的centos7都是一样的。同理,docker这个软件,每位同学都装了docker这个引擎。docker这个引擎跑同一份gmall.镜像文件。大家运行起来就不会有环境迁移、配置文件丢失、版本不一致等等这些繁琐的问题。因为我们把所有的问题都把它化成一个整体,整合成了一个镜像文件,当你调用这个镜像文件的时候,跑出来的效果100%跟开发团队一样,都是一个模子里面刻出来的。
这就是:一次镜像,处处运行,从搬家到搬楼。这就是docker最重要的理念。
[视频链接:尚硅谷]