1)Docker之前的虚拟机技术

虚拟机 就是带环境安装的一中解决方案。他可以在一种操作系统中运行另外一种操作系统,比如常见的在Windows平台运行Linux。应用程序对此无感知,因为虚拟机看上去跟真事的系统一模一样,对底层来说,虚拟机就是一个普通的文件,随时可以删掉,对其他部分毫无影响,这类虚拟机完美的运行了另一套系统,能够使应用程序,操作系统,硬件三者之间的逻辑不变
image.png
虚拟机的缺点:1.资源占用多,2.冗余步骤多,3.启动慢

用程序。
而容器内的应用程序直接运行于宿主的内核,容器没有自己的内核,也没有进行硬件虚拟,因此容器要比传统虚拟机更为轻便。
每个容器之间都互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。

2)容器虚拟化技术

由于虚拟机存在的那些诸多缺点,Linux发展出了另一种虚拟化技术:Linux容器(Linux Containers,LXC)。
Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一套操作系统,只需要软件工作所需的库资源和设置,系统因此变得更高效轻量并保证部署在任何环境中的软件都能始终如一的运行。
image.png
比较了Docker和传统虚拟化方式的不同之处:
传统虚拟机技术是虚拟出一套硬件之后,在其上面运行一个完整的操作系统,在该系统上再运行应

3)开发自运维(DevOps)

一次构建,到处运行:
1.更快速的应用交付和部署
2.更便捷的升级和扩缩容
3.更简单的系统运维
4.更高效的计算资源利用

image.png