最近研究了一下docker,其中有很多疑问。我一直在想,为什么会诞生这种这么难用的东西,并且大家还都喜欢?这是其中我最大的一个问题,我阐述了一下,有不对的,欢迎大家拍砖。
名词简述:
本机运行:即相对于在docker中运行程序,直接在物理机上上运行程序。
docker与虚拟机的区别,有很多,最大的区别就是启动速度比虚拟机快了至少10个数量级。
一、docker与直接在本机运行程序有什么区别呢?
直接在本机(物理机)运行程序,速度不是比从docker中启动速度更快?
我们先从docker的口号中找答案。build ship and run any app,any where.次口号:an open platform for distributed applications for developers and sysadmin。
这个口号大概说了以下几点。
1、在docker中可以运行任意的app。说anywhere还是有点夸张的。没有docker环境,你还能运行么?总之,就是说,如果你的程序能在docker中运行,就代码可以在任意环境运行。
2、docker为开发人员和运维人员提供了一个开发平台。
这句话,毋庸置疑。开发人员和运维人员都用docker,自然就形成了一个平台。但是目前,都使用虚拟机不也是一个平台么?所以这一点也不足以构成一个独特点。至于分布式应用,我想不用docker就不能用分布式了么?
所以,从docker这些直接宣传语来说,不足以让大家趋之若鹜。
二、人们为什么这么热衷于docker呢?
不排除某些大厂商的一些炒作。其实,计算机届和娱乐圈有一些相似之处,就是炒作。每隔几年,总要出一些新技术。人们总是喜新厌旧,就像手机一样,智能机比功能机多了写照相,打游戏,听音乐,上网的功能,价格就能翻好几倍。社会称之为创新,革命。
回到开头,其实这个问题就是相当于问“用智能手机打电话和用功能机打电话有什么区别”。我想你已经知道答案了吧。
三、那么docker到底附加了哪些功能呢?
我个人觉得,最大的附加功能就是性能。and so called build ship and run any app,any where。
四、docker为什么会是将来的趋势?
因为传统的vm太慢,技术太老,性能太低(当然这些都是相对docker的,想想docker没出生之前,大家用VM照样不是用的很溜)。社会要进步就必须有一种新的技术取代它。docker就是这样一种技术,虚拟机的最主要的隔离性等功能,在docker种都有替代方案。
2022年7月19日 补充。发展了这么多年,大部分云厂商的主流方案还是虚拟机,而不是docker,所以说,docker也有其自身的不足和缺点。大部分小厂,没有必要投入很大成本去搞docker。
五、docker比直接在本机性能更高么?
不会。既然是运行在容器中的,肯定没有物理机直接运行性能高。
看别人踩坑,铺平自己的路,欢迎关注猿界汪汪队;