什么是Docker?
越来越多的应用和服务,例如:EdgeX Foundry,都在使用Docker这种容器平台。首先, 什么是Docker呢 ?
要理解Docker,首先得体会百万程序员经常遇到的横跨开发、测试和运维的 Matrix from Hell 问题,即开发人员、测试人员和运维人员分别 从零开始搭建应用程序开发环境和运行时环境的问题 。
在容器化技术出现之前,有虚拟机技术,典型的有VMware或VirtualBox,虚拟机技术的确解决了运维工作,但虚拟机中不仅有应用程序,还连带了操作系统,要知道操作系统可是比应用程序占用资源更多的家伙。
顺便说一下:当前的云计算技术,其底层的基石就是虚拟机技术,云计算厂商买回来一堆硬件搭建好数据中心后,使用虚拟机技术就可以将硬件资源进行切分了,比如可以切分出100台虚拟机,这样就可以卖给很多开发者了。
开发者买到虚拟机后,使用容器化技术,可以将自己的应用程序部署在不同的容器上。有读者问,用虚拟机技术行不行,从技术上来说,肯定行;从商业上来说,肯定是性价比远远低于容器化技术 --- 公司也要考虑降本增效啊
总结一下:容器是更加的轻量级且占用的资源更少的虚拟化技术,与虚拟机技术动辄几G的内存占用相比,容器技术只需数M空间,因此我们可以在同样规格(费用)的硬件上大量部署容器,这是虚拟机所不能比拟的。容器技术为打包服务栈提供了一种更加高效的方式。