欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker与直接运行本地程序的区别

程序员文章站 2022-05-12 19:06:44
...
最近研究了一下docker,其中有很多疑问。我一直在想,为什么会诞生这种这么难用的东西,并且大家还都喜欢?这是其中我最大的一个问题,我阐述了一下,有不对的,欢迎大家拍砖。
 
关于我,邯郸人
对这类话题感兴趣?欢迎发送邮件至donlianli@126.com
请支持原创

http://donlianli.iteye.com/blog/2230307

 

名词简述:
本机运行:即相对于在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中运行,就代码可以在任意环境运行。但目前docker只在unix系统的系统中运行,在windows中还是无法运行的。所以,这句说的其实名不副实。
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种都有替代方案。
docker比直接在本机性能更高么?
不会。既然是运行在容器中的,肯定没有直接运行性能高。